std::vector<bool>::reference 如何分配给 c++ 中的 bool 类型?
How is std::vector<bool>::reference assigned to bool type in c++?
我知道 std::vector<bool>::reference
是一个代理 class 对用户来说并不明显。
赋值给bool类型时隐式转换为bool
怎么可能? std::vector<bool>::reference
类型与 bool 类型相去甚远。
是否有一些编译器在幕后工作?
下面是代码示例
...
std::vector<bool> v = { true, true, false, false, false };
std::vector<bool>::reference vr = v[1];
bool b = vr; // How is it possible ?
std::cout << b << std::endl;
...
std::vector<bool>::reference
定义 operator bool
以允许隐式转换为 bool
.
我知道 std::vector<bool>::reference
是一个代理 class 对用户来说并不明显。
赋值给bool类型时隐式转换为bool
怎么可能? std::vector<bool>::reference
类型与 bool 类型相去甚远。
是否有一些编译器在幕后工作?
下面是代码示例
...
std::vector<bool> v = { true, true, false, false, false };
std::vector<bool>::reference vr = v[1];
bool b = vr; // How is it possible ?
std::cout << b << std::endl;
...
std::vector<bool>::reference
定义 operator bool
以允许隐式转换为 bool
.