typedef声明语法理解?

时间:2013-06-20 14:47:08

标签: c++

我遇到了这段代码而不知道它是做什么的。你能破译一下吗?

typedef std::map<std::string, bool (Foo::*)()> x_t;

我不明白的部分是地图的价值。我对其有效的c ++语法感到惊讶。

感谢。

2 个答案:

答案 0 :(得分:6)

bool (Foo::*)()是指向Foo的成员函数的指针,它不接受任何参数并返回bool。所以x_t可能用于将成员函数的名称映射到实际成员。

答案 1 :(得分:1)

x_t是从mapstring指针指向成员的Foo返回bool的{​​{1}}。

您可以向后阅读C ++声明,或者在某些情况下,从内到外阅读。地图的值从*读取,作为返回Foo的{​​{1}}成员函数,地图的关键字显然为boolstring是从键到值的地图的类型别名。