C++ 二进制文字
C++ Binary Literal
我知道 C++ 中的 Binary Literal 是从 C++14.
标准化而来的
然而,虽然我将 std
固定为 c++11
,但效果很好。因为实际上,我预计会出现错误。以下是我预计会出现错误的代码。
int main(){
int a = 0b1010; // an error is expected
std::cout << a << std::endl;
}
此外,我已经使用以下命令编译并执行了上述文件。
g++ -std=c++11 -Wall main.cpp -o runfile
./runfile
预期的结果没有出来是什么原因?我有什么地方做错了吗?
早在 C++14 对其进行标准化之前,二进制文字就已成为 GCC 中的编译器扩展。您可以使用 -pedantic
进行编译以警告扩展,并使用 -pedantic-errors
将这些特定警告提升为错误:
<source>:3:11: error: binary constants are a C++14 feature or GCC extension
3 | int a = 0b1010; // an error is expected
| ^~~~~~
我知道 C++ 中的 Binary Literal 是从 C++14.
标准化而来的然而,虽然我将 std
固定为 c++11
,但效果很好。因为实际上,我预计会出现错误。以下是我预计会出现错误的代码。
int main(){
int a = 0b1010; // an error is expected
std::cout << a << std::endl;
}
此外,我已经使用以下命令编译并执行了上述文件。
g++ -std=c++11 -Wall main.cpp -o runfile
./runfile
预期的结果没有出来是什么原因?我有什么地方做错了吗?
早在 C++14 对其进行标准化之前,二进制文字就已成为 GCC 中的编译器扩展。您可以使用 -pedantic
进行编译以警告扩展,并使用 -pedantic-errors
将这些特定警告提升为错误:
<source>:3:11: error: binary constants are a C++14 feature or GCC extension
3 | int a = 0b1010; // an error is expected
| ^~~~~~