我遇到了这段代码而不知道它是做什么的。你能破译一下吗?
typedef std::map<std::string, bool (Foo::*)()> x_t;
我不明白的部分是地图的价值。我对其有效的c ++语法感到惊讶。
感谢。
答案 0 :(得分:6)
bool (Foo::*)()
是指向Foo
的成员函数的指针,它不接受任何参数并返回bool
。所以x_t
可能用于将成员函数的名称映射到实际成员。
答案 1 :(得分:1)
x_t
是从map
到string
指针指向成员的Foo
返回bool
的{{1}}。
您可以向后阅读C ++声明,或者在某些情况下,从内到外阅读。地图的值从*
读取,作为返回Foo
的{{1}}成员函数,地图的关键字显然为bool
,string
是从键到值的地图的类型别名。