C++ 构建模板化容器类

C++ 构建模板化容器类,c++,c++11,gcc,clang,C++,C++11,Gcc,Clang,作为我的自定义对象系统的一部分,我希望有一个容器类,它只包装一个第三方对象,这样它们就可以集成到我的容器系统中 假设我有以下第三方对象 class Point { public: int x; Point(int y = 0) : x(y) {} int value() { return x; } }; 货柜类别 template <typename T, typename... Args> class Container{ T dat; p

作为我的自定义对象系统的一部分,我希望有一个容器类,它只包装一个第三方对象,这样它们就可以集成到我的容器系统中

假设我有以下第三方对象

class Point { 
public:  
  int x;  
  Point(int y = 0) : x(y) {}  
  int value() { return x; } 
};
货柜类别

template <typename T, typename... Args> class Container{  
   T dat; 
public:  
   Container(const Args &... args) { dat = T(args...); }  
   T data() { return dat; } 
};
模板类容器{
T-dat;
公众:
容器(常量Args&…Args){dat=T(Args…;}
T data(){return dat;}
};
我试图提供以下api

    Container<Point> v = Container<Point>(1);
Container v=容器(1);
我试图将传递给值构造函数的参数直接传递给T类型构造函数


编辑:我得到一个编译器错误
候选者需要0个参数,1个提供的错误

您需要将构造函数模板化在
参数上…
,而不是类:

template <typename... Args>
Container(Args&&... args) : dat(std::forward<Args>(args)...) { }  
模板
容器(Args&&…Args):dat(std::forward(Args)…{}

所以。。。您面临什么问题?Container()构造函数??!!不应该是Value()?@Quentin I不起作用。我得到了一堆
候选者期望0个参数,1个提供的
errors@chedynajjar右复制/粘贴错误已修复。@HamzaYerlikaya请在您的问题中包含准确的错误,以及足够的代码来重现这些错误。