cod*_*imp 2 pragma compiler-directives compiler-optimization c++11 g++4.9
我正在寻找一种简单的方法来将某些g ++(g ++ - 4.9特定的)编译选项本地化到某些代码行或至少是目标函数.我感兴趣一般来说,还特意到-fast-math,-ffinite-math-only和-fno-signed-zeros选项.
我认为可以使用make实用程序在*.cpp文件级别进行本地化,但我希望有一种方法可以在代码本身中通过#pragma或__attribute__等来启用它.我想这样做不仅可以最大限度地减少对外部文件的依赖性(即不正确的风险makefile),而且还希望将某些FP行为超本地化为函数内的特定方程.
或者,如果不能通过内联指令本地化FP行为,如果在项目构建中未启用所需的编译器指令(例如makefile丢失或不适当地修改),我该怎么做才能至少触发编译时错误.
我认为这种内联优化可能是编译器特定的,在这种情况下是g ++,但这是我愿意采取的妥协.
在gcc你可以使用函数属性 optimize:
void f () __attribute__ ((optimize("fast-math"), optimize("finite-math-only"), optimize("no-signed-zeros")));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |