C++11读书笔记—1(长期历史遗留问题,宏定义与类型)
一、宏定义的补全
1.C宏的补全
C的精髓宏定义更有更好的兼容请看下面代码,VS2015在部分没有做提示,但是可以用。但在标准C++0x版本不能用。如__VA_ARGS__等#include#define LOG(...){\printf("文件名为:%s,%d\n",__FILE__,__LINE__);\printf("变长参数为%s\n",__VA_ARGS__);\printf("函数名为%s\n",__func__);\
}int main()
{int a = 10;LOG("a=%d", a);return 0;
}
2.宏__cplusplus问题
C++11标准说__cplusplus更新为201103L,C++03则为199711L。依据此可以判断当前使用的是什么编译器。
#if __cplusplus < 201103L#error "should use C++11 implementation"
#endif // 目的是运行到#error时编译器自动报错
但我的VS2015中的值还是199711L。这里说下,C++11现阶段不是所有编译器支持都很良好。官方其实推荐4.8.4以上的GCC-C++
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
