![](/img/trans.png)
[英]C++ - Cast char reference to bool referenece (std::vector<bool>)
[英]How is std::vector<bool>::reference assigned to bool type in c++?
我知道std::vector<bool>::reference
是一個對用戶不明顯的代理類。
當分配給 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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.