Heim >Backend-Entwicklung >C++ >Warum gibt „std::vector::reference' kein „bool&' zurück?
Warum vector
In C ist der std::vector Das Problem Im bereitgestellten Beispiel wird eine Funktion callIfToggled verwendet, um einen booleschen Wert umzuschalten Rufen Sie eine Methode für eine Struktur auf. Beim Versuch, einen Verweis auf ein Element eines std::vector Der Grund Innerhalb der Bool-Vektorspezialisierung ist vector Lösungen Beispiel (Vektor von Char): Das obige ist der detaillierte Inhalt vonWarum gibt „std::vector::reference' kein „bool&' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!#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);
}