我如何比较两个指针,看它们是否属于同一类型?
说我有......
int * a;
char * b;
我想知道这两个指针的类型是否不同。
详细说明:
我正在研究一个查找表(实现为2D无效指针数组)来存储指向各种类型结构的指针。我想使用一个插入函数来比较指定给表中第一行中存储的类型的指针类型。如果它们匹配,我想将指针添加到该列中的表。
基本上我希望能够将每个传入类型存储到自己的列中。
欢迎实现这一目标的替代方法。
答案 0 :(得分:9)
在这种情况下,由于您事先了解了类型,因此检查没有多大意义。你可以知道它们是不同的类型。
但是,假设类型可能依赖于某些编译时属性(如模板参数),您可以使用std::is_same
:
std::is_same<decltype(a), decltype(b)>::value
如果类型相同,则为true
,否则为false
。