gpt4 book ai didi

c++ - 为什么显式运算符 bool 让我转换为任何原始类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:58 25 4
gpt4 key购买 nike

struct test
{
explicit operator bool() const { return true; }
};

int main()
{
test a;
float b = static_cast<float>(a); // b = 1
}

这是正确的,还是一个 VS 错误?如果按照设计,这里的最佳做法是什么?我应该/可以做些什么来防止这种情况发生吗?

最佳答案

这看起来像一个 VS 错误:显式运算符不应该应用于 bool 以外的类型。

在这两个 C++11 mode 中都无法在 gcc 中编译和 C++98 mode .

Can I do anything to prevent this?

您已经完成了您需要做的事情 - 这是编译器的问题。

关于c++ - 为什么显式运算符 bool 让我转换为任何原始类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com