这似乎是不可能的,但我想我还是会问。
我已经定义了一个boost::variant
这样的:
typedef boost::variant<double, int, std::string> ConfigVariant;
稍后在我的代码中,我定义了一个std::map
这样的:
std::map<std::string, ConfigVariant> my_map;
现在我希望能够std::map<std::string, ConfigVariant>
在my_map
. 例如,我想这样做:
my_map[key1][key2] = "hello world";
我认为这是不可能的原因是因为看起来相应的变体定义看起来像这样:
typedef boost::variant<double, int, std::string, std::map<std::string, ConfigVariant> ConfigVariant;
既然做出这样的类型定义是不可能的,有没有办法解决这个问题?