小编ouk*_*ore的帖子

比较两种类型是否“字面意义上”相同

假设我们有两种类型

using t1 = int*; using t2 = int*;
Run Code Online (Sandbox Code Playgroud)

我知道那std::is_same<t1, t2>::value会给我们带来true。什么是,或者说,有没有一个模板工具可以实现以下功能?

tool<t1, t2>::value == false;
tool<t1, t1>::value == true;
Run Code Online (Sandbox Code Playgroud)

我想说这可能是不可能的,但我不是 C++ 专家。

据推测,该工具可以在模板函数中使用,如下所示

using allowed = int*;
using not_allowed = int*;

template <class T>
void f(T var) {
   static_assert(tool<T, allowed>::value &&
                 tool<T, not_allowed>::value == false, "");
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++

2
推荐指数
1
解决办法
126
查看次数

标签 统计

c++ ×1