到目前为止,我正在开发一个同时使用 gcc 和 msvc 构建的项目。我们最近也开始使用 clang 进行构建。
代码中有一些部分完成了特定于平台的操作:
#ifndef _WIN32
// ignore this in msvc
#endif
由于 gcc 以前是唯一的非 windows 版本,这相当于说“只为 gcc 做这个”。但现在它的意思是“只为 gcc 和 clang 做这个”。
然而,在某些情况下,我想专门为 gcc 处理一些事情,而不是为 clang。是否有一种简单而可靠的方法来检测 gcc,即
#ifdef ???
// do this *only* for gcc
#endif
原文由 ValarDohaeris 发布,翻译遵循 CC BY-SA 4.0 许可协议
还:
资源
显然,
clang
也使用它们。但是它也定义了:所以你可以这样做:
甚至更好(注意顺序):