これは無理そうですが、とにかく聞いてみようと思いました。
私は次のように定義しました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;
そのような型定義を行うことは不可能なので、これを回避する方法はありますか?