2

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

说我有...

int * a;
char * b;

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

细节:

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

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

在此处输入图像描述

欢迎使用替代方法来实现这一点。

4

1 回答 1

9

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

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

std::is_same<decltype(a), decltype(b)>::value

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

于 2013-04-17T23:51:10.370 回答