如在此代碼:超載<<上枚舉運營商提供了運行時錯誤
#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