C++ c++;:创建元组&;添加元素

C++ c++;:创建元组&;添加元素,c++,stdtuple,C++,Stdtuple,我有几个自定义类的对象,我尝试创建一个类,它可以使用std::tuple存储我以前的所有对象。不幸的是,我对C++元组很陌生。以下是我迄今为止所做的工作: class Universe { public : std::tuple<Plain, Point, Rectangle> all_things; Universe() { this->all_things = std::make_tuple(); }; templat

我有几个自定义类的对象,我尝试创建一个类,它可以使用
std::tuple
存储我以前的所有对象。不幸的是,我对C++元组很陌生。以下是我迄今为止所做的工作:

class Universe {

public : 
    std::tuple<Plain, Point, Rectangle> all_things;

    Universe() {
        this->all_things = std::make_tuple();
    };

    template <class T>
    void add( T obj ) {
        this->all_things.append(obj);
    }; 
}
类宇宙{
公众:
std::tuple all_things;
宇宙(){
这->所有东西=std::make_tuple();
};
模板
无效添加(T obj){
这个->所有东西。附加(obj);
}; 
}
这是我得到的错误(与使用空构造函数时的错误相同):

错误:调用'std::tuple::tuple()'时没有匹配的函数
18 |宇宙(){

另外,我想知道是否有任何元组方法用于添加内容。对不起,我还没有在网上找到任何有用的信息…

您看到的错误表明元组包含的一个成员不是默认可构造的。在这种情况下,您必须使用适当的参数初始化成员元组以使用非定义元组成员的ault构造函数

另外,我想知道是否有任何元组方法来添加一个东西


不可以。元组包含从其生命周期开始到结束的所有成员。无法添加或删除元素。

您看到的错误意味着元组包含的其中一个成员不是默认可构造的。在这种情况下,必须使用适当的参数初始化成员元组以使用非defa元组成员的ult构造函数

另外,我想知道是否有任何元组方法来添加一个东西

不。元组包含从其生命周期开始到结束的所有成员。无法添加或删除元素

error: no matching function for call to 'std::tuple<Plain, Point, Rectangle>::tuple()'
   18 |     Universe() {