英文:
Recursive typedef definition using std::variant
问题
我想定义一个可以存储一组字符串和值的std::variant
,其中值是一组成对的值。
我想创建一个如下的结构:
typedef std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> Value;
在C++17中,我该如何实现这个?
英文:
I want to define a std::variant
that can store a vector of pairs, with strings and Values.
I want to create a structure like below:
typedef std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> Value;
How can I do it in C++17?
答案1
得分: 3
正如HolyBlackCat在评论中提到的,您需要Value
是一个类型(但可以是不完整的),才能在这个pair中使用它。
struct Value
{
std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> data;
};
英文:
As HolyBlackCat notes in the comments, you need Value
to be a type (but it can be incomplete) to use it in the pair.
struct Value
{
std::variant<bool, int, float, std::vector<std::pair<std::string, Value>>> data;
};
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论