Maison >développement back-end >C++ >Pourquoi `std::vector::reference` ne renvoie-t-il pas un `bool&` ?
Pourquoi vector
En C , le std::vector Le problème Dans l'exemple fourni, une fonction callIfToggled est utilisée pour basculer une valeur booléenne et appeler une méthode sur une structure. Lorsque vous tentez de transmettre une référence à un élément d'un fichier std::vector La raison Dans la spécialisation de vecteur bool, vector Solutions Exemple (Vector of Char) : Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!#include <vector>
struct A
{
void foo() {}
};
template<typename T>
void callIfToggled(char v1, char &v2, T &t)
{
if (v1 != v2)
{
v2 = v1;
t.foo();
}
}
int main()
{
std::vector<char> v = { false, true, false };
const char f = false;
A a;
callIfToggled(f, v[0], a);
callIfToggled(f, v[1], a);
callIfToggled(f, v[2], a);
}