C++ 有没有一种方法可以测试目标是否在Clang中具有本机的半精度支持?
Clang文档说: _浮点16算法将在目标上可用时使用本机半精度支持执行(例如,在ARMv8.2a上);否则,它将以更高的精度执行(当前总是浮点),然后被截断为_Float16C++ 有没有一种方法可以测试目标是否在Clang中具有本机的半精度支持?,c++,clang,half-precision-float,C++,Clang,Half Precision Float,Clang文档说: _浮点16算法将在目标上可用时使用本机半精度支持执行(例如,在ARMv8.2a上);否则,它将以更高的精度执行(当前总是浮点),然后被截断为_Float16 有没有一种方法可以说我只想在第一种情况下使用\u Float16,否则,我想在第二种情况下使用float,以避免截断?例如 #if ??? using float_maybe_16 = _Float16; #else using float_maybe_16 = float; #endif “有没有办法说我只想在第一种
有没有一种方法可以说我只想在第一种情况下使用
\u Float16
,否则,我想在第二种情况下使用float
,以避免截断?例如
#if ???
using float_maybe_16 = _Float16;
#else
using float_maybe_16 = float;
#endif
“有没有办法说我只想在第一种情况下使用浮点数16,而在其他情况下使用浮点数?”-您引用的文档不是说这就是默认情况下得到的结果吗???@JesperJuhl没有。默认情况是在缺少真正的半精度类型时截断额外的精度。如果半精度算法不可用,则给定的伪代码将保持该精度。这是一个微妙的区别,因此OP可能应该澄清这是否是目的。您是否看过
\uuuuizeof\ufloat\uuuuu
?是的,目的是在第二种情况下避免截断。@FTrias经过它似乎不相关,只是SIZEOF(FLOAT)
是否有半精度支持。除非我误解了什么?