对此模板函数的类型有哪些要求

时间:2011-04-10 06:47:38

标签: c++ generics function

我正在查看看起来像这样的C ++代码:

template<class A>
bool foo(int A::*)
{ /*blah*/ }

int A::*构造是什么?它对A类型有什么要求?

非常感谢!!

1 个答案:

答案 0 :(得分:3)

int A::*是指向int类型的A数据成员的指针。例如,给出类型:

struct Foo { int i; };
struct Bar { double d; };
  • int Foo::*是指向int类型的Foo数据成员的指针,其唯一有效值为null,地址为Foo::i
  • int Bar::*是指向int类型的Bar数据成员的指针,其唯一有效值为null,因为Bar不包含int个数据成员

A类型施加的唯一要求是它不是原始类型,因为原始类型显然不能拥有数据成员。