C++标准库是否存在返回类型的同类型判断Type Trait?
关于判断类型是否相同、返回类型而非值的标准库工具解答
你完全没必要自己造轮子,标准库里的std::is_same就是你要找的工具。
std::is_same_v<A, B>是C++17新增的语法糖,本质等价于std::is_same<A, B>::value——它提取的是std::is_same<A,B>这个类型的value成员常量。而std::is_same<A,B>本身就是一个模板,当A和B类型相同时,它会被实例化为std::true_type;类型不同时则实例化为std::false_type。
你可以直接用标准库的std::is_same替代自己写的is_same_t,比如这样验证:
#include <type_traits> static_assert(std::is_same_v<std::is_same<int, int>, std::true_type>); static_assert(std::is_same_v<std::is_same<int, char>, std::false_type>); int main() {}
你自己实现的is_same_t和标准库的std::is_same<A,B>功能完全一致,属于重复造轮子,直接用标准库的版本就好。
内容的提问来源于stack exchange,提问作者abcdefg
相关产品推荐
相关产品推荐

