按类型比较指针?

Cod*_*ith 2 c c++ types pointers

我如何比较两个指针,看看它们是否属于同一类型?

说我有......

int * a;
char * b;
Run Code Online (Sandbox Code Playgroud)

我想知道这两个指针的类型是否不同.

细节:

我正在研究一个查找表(实现为2D无效指针数组)来存储指向各种类型结构的指针.我想使用一个插入函数来比较指定给表中第一行中存储的类型的指针类型.如果它们匹配,我想将指针添加到该列中的表.

基本上我希望能够将每个传入类型存储到自己的列中.

在此输入图像描述

实现这一目标的替代方法受到欢迎.

Jos*_*eld 9

在这种情况下,由于您事先了解了类型,因此检查没有多大意义.你可以知道它们是不同的类型.

但是,假设类型可能依赖于某些编译时属性(如模板参数),您可以使用std::is_same:

std::is_same<decltype(a), decltype(b)>::value
Run Code Online (Sandbox Code Playgroud)

true如果它们是相同的类型,则将是这样false.