假设我有
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内核代码)。