相关疑难解决方法(0)

是否可以使编译器按功能使用快速运算符?

假设我有

template <bool UsesFastMath> void foo(float* data, size_t length);
Run Code Online (Sandbox Code Playgroud)

我想用-ffast-math--use-fast-math对于nvcc)编译一个实例,而没有它的另一个实例。

这可以通过在单独的翻译单元中实例化每个变体,并使用不同的命令行(使用和不使用开关)来编译每个变体来实现。

我的问题是是否可以指示流行的编译器(*)是否适用-ffast-math于单个函数-这样我就可以在同一翻译单元中使用我的实例。

笔记:

  • 如果答案为“否”,则为解释为什么不提供加分。
  • 这是不一样的问题,这一次,大约是在运行时开启快速数学和关闭。我要谦虚得多...

(*)由流行的编译器表示我具有以下信息:gcc,clang,msvc icc,nvcc(用于GPU内核代码)。

floating-point gcc nvcc fast-math template-instantiation

5
推荐指数
2
解决办法
1167
查看次数