为什么在-std = c ++ 14标准下会出现不同的行为?

时间:2019-07-02 12:13:20

标签: c++ linux gcc g++

点击以下链接 https://stackoverflow.com/a/44735016 我试图找到g ++使用的c ++标准,然后得到了定义行。

% g++ -dM -E -x c++  /dev/null | grep -F __cplusplus
#define __cplusplus 201402L

使用编译我的代码时会得到不同的结果

g++ file.cpp

g++ -std=c++14 file.cpp

file.cpp:

#include <iostream>

int main() {
   std::cout << linux << "\n";
   return 0;
}
% g++ myfile.cpp -o myfile.o && ./myfile.o
1
% g++ -std=c++14 myfile.cpp -o myfile.o && ./myfile.o
myfile.cpp: In function `int main()`:
myfile.cpp:4:15: error: `linux` was not declared in this scope
std::cout << linux << "\n";

0 个答案:

没有答案