我想定义一个std::variant
,它可以存储具有字符串和值的一对向量。
我想创建如下结构:
typedef std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> Value;
如何在c++ 17中做到这一点?
正如HolyBlackCat在评论中指出的那样,您需要Value
是一个类型(但它可以是不完整的)才能在对中使用它。
struct Value
{
std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> data;
};
在coliru上看