优化各种C/C++编译器的代码

Jas*_*son 1 c++ compiler-construction development-environment compiler-optimization c-preprocessor

对于那些为多个平台开发软件的人来说,如何处理编译器可能比其他编译器更好地完成某些事情的潜力.

假设您为OS X,Windows,Linux开发,并且您正在使用Clang/LLVM,VS和GCC.

因此,如果有人编译你的OS X应用程序,他们正在使用GCC和另一个人编译使用英特尔编译器OS X,你可以优化的代码段用于英特尔编译器如果这个人有他们.

你能检查预处理器指令吗?

#ifdef __GCC_
    // do it this way
#endif

#ifdef __INTEL__
    // do it this way
#endif

#ifdef __GCC_WITH C++_V11_Support__
    // do it this way
#endif

#idfef __WINDOWS_VISUAL_STUDIO
    // do it this way
#endif
Run Code Online (Sandbox Code Playgroud)

或者,还有更好的方法?

如何找到编译器为检查编译器版本等提供的指令列表

Ben*_*igt 6

不要选择基于预定义宏的实现.让构建系统控制它.

这使您可以在单元测试期间构建和比较多个实现.