如在此代码:超载<<上枚举运营商提供了运行时错误
#include <iostream>
enum class A {
a,
b
};
std::ostream& operator<<(std::ostream& os, A val)
{
return os << val;
}
int main() {
auto a = A::a;
std::cout << a;
return 0;
}
当我没有提供std::ostream& operator<<(std::ostream& os, A val)
程序没有编译,因为A ::一个没有任何功能去<<
。但是现在当我已经提供了它时,它会在我的终端中产生垃圾,并在ideone上产生运行时错误(超出时间限制)。
'的static_cast(VAL)' –
推荐花一些时间来学习你的开发环境的调试器。你会看到几步之内发生了什么问题,并节省了一些时间。除此之外,这是一个非常合适的问题。希望我们看到更多缩小到这个紧凑的MCVE。 – user4581301