【发布时间】:2015-11-23 08:31:29
【问题描述】:
我正在寻找一种简单的方法来将某些 g++(具体为 g++-4.9)编译选项本地化到某些代码行或至少是目标函数。一般来说,我很感兴趣,但也特别对-fast-math、-ffinite-math-only 和-fno-signed-zeros 选项感兴趣。
我认为使用 make 实用程序可以在 *.cpp 文件级别进行本地化,但我希望有一种方法可以通过 #pragma 或 __attribute__ 或其他方式在代码本身中启用它。我想这样做不仅是为了最大限度地减少对外部文件的依赖(即不正确的makefile 的风险),而且希望将某些 FP 行为超本地化到函数中的特定方程。
或者,如果无法通过内联指令对 FP 行为进行本地化,如果在项目构建中未启用所需的编译器指令(例如,makefile 丢失或不当修改),我该怎么做才能至少触发编译时错误.
我认为这种内联优化可能是特定于编译器的,在这种情况下是 g++,但这是我愿意采取的折衷方案。
【问题讨论】:
标签: c++11 compiler-optimization pragma compiler-directives g++4.9