C++有没有办法获取模板类型?

Jea*_*lho 0 c++ templates

我有一个像这样模板化的地图访问者

template <class Map> class MyVisitor : public MyMapVisitor<Map>;
Run Code Online (Sandbox Code Playgroud)

Map必须是std :: map

我想在其中有一个方法,我想创建一个存储在我的地图中的所有成员的列表:

std::vector <Map::*second_template_argument*> toList ();
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?因为我不允许更改MyMapVisitor超类但我可以更改MyVisitor子类.

小智 8

对于std :: map,您有三个选择:

  • std :: map :: value_type,这是一个键/值对
  • 密钥的std :: map :: key_type
  • std :: map :: mapped_type表示映射值.