C++-用和结构相同的语法围绕结构构造包装类
C++ - Constructing wrapper class around structure with same syntax as structure
这是我之前问题的后续内容:C++-用与包装数据相同的语法构造包装类
基本上,我试图围绕一些数据制作一个包装器模板,并使用与数据相同的语法构建/设置包装器。
如果我使用类似结构的东西,我可以通过转发参数来实现,因此语法可以是:
struct SomeStruct{
int a, b, c;
SomeStruct(int _a, int _b, int _c) {/*...*/}
};
// ...
WrapperClass<SomeStruct> wrapped_struct1{1,2,3};
WrapperClass<SomeStruct> wrapped_struct2 = {1,2,3};
WrapperClass<SomeStruct> wrapped_struct3( 1,2,3);
问题是,只有当我在结构中定义了构造函数时,这才有效。我可以让它工作而不必定义它吗?
包装器当前如下所示:
template<typename T> class WrapperClass{
public:
T data;
template <typename...Args>
WrapperClass(Args&&...args) : data(std::forward<Args>(args)...) {}
};
您可以改为列表初始化。然后
如果T是聚合类型,则执行聚合初始化。
例如
template <typename...Args>
WrapperClass(Args&&...args) : data{std::forward<Args>(args)...} {}
// ^ ^
相关文章:
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- 转换包含向量 C++ 的语法和结构
- C++-用和结构相同的语法围绕结构构造包装类
- 当C++类函数参数之一是结构时,它们的语法有什么不同
- 错误 C2059:语法错误:从结构成员声明'constant'
- Boost.Spirit.Qi 语法,用于 Boost.Fusion 自适应结构中的默认值
- 结构化绑定语法是否可以在多态 lambda 中使用
- 我想重置一个C++结构统计,我可以以某种方式使用 stat() 语法吗?
- 结构初始化语法
- 返回结构的方法的正确语法是什么
- boost :: Spirit :: Karma语法:逗号从结构上划定了带有选件属性的输出
- 在语法树中的节点上定义的层次结构的表达式模板
- C :将结构传递到函数,无法理解语法
- C Koala图库 - 了解访问数据结构的语法
- 无法理解此C++表达式的语法/结构
- Visual C++ 模板类成员结构初始化语法糖
- C++中的抽象语法树:类与结构
- 只有typedef的c++结构语法的含义
- 了解C++结构语法
- typedef 结构语法