gpt4 book ai didi

c++ - 使用结构化绑定(bind)定义类成员

转载 作者:行者123 更新时间:2023-12-01 15:13:23 32 4
gpt4 key购买 nike

我想定义类成员 a , b使用结构化绑定(bind),类似于以下方式:

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;

有什么方法可以用结构化绑定(bind)重写它以便编译?或者我必须放弃使用结构化绑定(bind)并分别定义每个成员:
  const int a = ab.a;
const int b = ab.b;

最佳答案

I would like to define class members ... using structured bindings

Is there some way I can rewrite this with structured bindings so that it compiles?


不可以。您不能将结构化绑定(bind)作为成员。

Or must I give up using structured bindings and define each member separately:


那将是格式良好的。
无论您如何声明成员,都不清楚为什么要将 member 成员的拷贝作为直接成员。我建议重新考虑您的设计。

关于c++ - 使用结构化绑定(bind)定义类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60583401/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com