编译器 内置宏 并且 支持不同c++标准,__cplusplus不同

来源:互联网 发布:数控冲床编程教学 编辑:程序博客网 时间:2024/06/01 10:17
#include<iostream>using namespace std;int main(){        #ifdef __LINE__                cout << "__LINE__:" << __LINE__ <<endl;        #endif        #ifdef __FILE__                cout << "__FILE__:" << __FILE__ <<endl;        #endif        #ifdef __DATE__                cout << "__DATE__:" << __DATE__ <<endl;        #endif        #ifdef __TIME__                cout << "__TIME__:" << __TIME__ <<endl;        #endif        #ifdef __STDC__                cout << "__STDC__:" << __STDC__ <<endl;        #endif        #ifdef __cplusplus                cout << "__cplusplus:" << __cplusplus <<endl;        #endif        #ifdef __FUNCTION__                cout << "__FUNCTION__:" << __FUNCTION__ << endl;        #endif        #ifdef __func__ //unknown macro (truely unsoupport macro,it may be keywords)                cout << "__func__:" << __func__ << endl;        #endif        cout << __func__ << endl;        return 0;}

Administrator@xiuye-PC /cygdrive/d/programming/c++$ g++ standardmacro.cppAdministrator@xiuye-PC /cygdrive/d/programming/c++$ ./a__LINE__:7__FILE__:standardmacro.cpp__DATE__:Jul 13 2016__TIME__:22:59:39__STDC__:1__cplusplus:199711main
$ g++ -std=c++11 standardmacro.cppAdministrator@xiuye-PC /cygdrive/d/programming/c++$ ./a__LINE__:7__FILE__:standardmacro.cpp__DATE__:Jul 13 2016__TIME__:23:00:57__STDC__:1__cplusplus:201103mainAdministrator@xiuye-PC /cygdrive/d/programming/c++$ g++ -std=c++14 standardmacro.cppAdministrator@xiuye-PC /cygdrive/d/programming/c++$ ./a__LINE__:7__FILE__:standardmacro.cpp__DATE__:Jul 13 2016__TIME__:23:01:18__STDC__:1__cplusplus:201402main


0 0