是否可以在构造函数的成员初始化列表中使用结构化绑定?



我想创建一个具有几个const成员变量的类。不幸的是,我需要初始化这些变量的函数来自一个非常c风格的外部库。因此,我一直聘用以下"中间人"。各种各样的:

struct Struct {
int foo, bar;
Struct(int baz, int qux) {
initializerFunction(&foo, baz, &bar, qux);
}
}
class Class {
const int foo, bar;
Class(Struct s) : anArray(s.foo), anotherArray(s.bar) {}
public:
Class(int baz, int quz) : Class(Struct(baz, qux)) {}
}

然而,我有点不喜欢这种结构。我希望能够做这样的事情:

class Class {
const int foo, bar;
public:
Class(int baz, int qux) : [foo, bar](Struct(baz, qux)) {}
}

是否有可能我只是使用不正确的语法,或者结构化绑定真的不允许在构造函数的成员初始化列表?

结构化绑定声明变量(好吧,它们不是"变量")。事实上,但没关系)。不能使用结构化绑定来操作现有对象。这包括成员对象。

最新更新