我正在尝试将 C++17 项目移植到一个没有比 C++14 更新的东西的奇异平台。我尝试移植到 C++14 的 C++17 项目使用了大量对
is_XXX_v
函数的调用,例如is_integral_v
、is_floating_point_v
和 is_same_v
,在 C++14 中不可用。
我的 C++ 知识非常有限,所以我想知道是否可以轻松地在 C++14 中模拟这些
is_XXX_v
调用,或者是否需要对代码进行重大重写?
添加到特征中的
_v
模板变量只是使用其 ::value
成员的语法糖。
因此您可以使用:
is_integral<T>::value
is_floating_point<T>::value
is_same<T, U>::value
它们自 C++11 起全部可用。