我想使用结构化绑定定义类成员a
、b
,方法如下:
struct AB {
int a;
int b;
};
class MyClass {
public:
MyClass(AB ab) : ab{ab} {}
private:
AB ab;
const auto [a, b] = ab;
}
然而,对于gcc 9.2.0,这会导致编译器错误:
error: expected unqualified-id before ‘[’ token
12 | const auto [a, b] = ab;
有没有什么方法可以用结构化绑定重写它,使其编译?或者我必须放弃使用结构化绑定,并分别定义每个成员:
const int a = ab.a;
const int b = ab.b;
我想定义类成员。。。使用结构化绑定
有没有什么方法可以用结构化绑定重写它,使其编译?
否。不能将结构化绑定作为成员。
或者我必须放弃使用结构化绑定,并分别定义每个成员:
这将是一个很好的形式。
无论您如何声明成员,都不清楚为什么您希望将成员的副本作为直接成员。我建议重新考虑你的设计。