注释行不起作用,因为MyArray需要MyValue但MyValue需要MyArray(这是一个简化的示例)。我可以使用结构但我觉得可能有更好的方法。继承类不起作用,因为我需要构造函数和运算符。
#include <variant>
#include <vector>
struct MyValue;
using MyArray = std::vector<MyValue>;
// using MyValue = std::variant<int, MyArray>;
struct MyValue {
std::variant<int, MyArray> v;
};
int main() {}