我有一个类(让我们命名TheClass)在以下情况下经常使用:几个实例是从常量构造的,并作为几个参数传递给其他一些构造函数.不幸的是,我必须使用相当繁琐的语法进行初始化:
Otherclass{ TheClass{1, 'a', 2},
TheClass{1, 'b', 4},
TheClass{3, 'h', 2},
TheClass{1, 't', 8} }
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将类初始化为POD?即我想能够写
Otherclass{ {1, 'a', 2},
{1, 'b', 4},
{3, 'h', 2},
{1, 't', 8} }
Run Code Online (Sandbox Code Playgroud)
编辑:我已经发布了另一个问题,正确定义了我面临的问题.请参阅是否可以将数据作为initializer_list传递给std :: array of structures?
这应该做你想要的.或者你可以typedef TheClass t;或者像这样定义一个宏:#define _(x) TheClass x然后#undef它.
#include <initializer_list>
class TheClass {
public:
TheClass(int x, char y, int z) { }
};
class OtherClass {
public:
OtherClass(std::initializer_list<TheClass> t) { }
};
int main (int argc, char **argv) {
OtherClass s { {1,'a',2}, {1, 'b', 4}, {3, 'h', 2}, {1, 't', 8}};
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |