结构化绑定声明的无效初始值设定项
invalid initializer for structured binding declaration
我该如何解决这个错误?我应该改用 const std::tuple<int, int, char>
吗?
constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
这会产生如下错误:
error: structured binding declaration cannot be 'constexpr'
434 | constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
error: invalid initializer for structured binding declaration
434 | constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
Y_AxisLen
和 X_AxisLen
应该是 int
类型,fillCharacter
应该是 char
.
- 现在
constexpr
不允许结构绑定。
- 结构绑定只能应用于以下情况。
- 数组
- 类似元组
- 结构数据成员
参考:https://en.cppreference.com/w/cpp/language/structured_binding
如果必须使用结构绑定,请使用std::make_tuple
const auto [ Y_AxisLen, X_AxisLen, fillCharacter ] = std::make_tuple(36, 168, ' ');
我该如何解决这个错误?我应该改用 const std::tuple<int, int, char>
吗?
constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
这会产生如下错误:
error: structured binding declaration cannot be 'constexpr'
434 | constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
error: invalid initializer for structured binding declaration
434 | constexpr auto [ Y_AxisLen, X_AxisLen, fillCharacter ] { 36, 168, ' ' };
Y_AxisLen
和 X_AxisLen
应该是 int
类型,fillCharacter
应该是 char
.
- 现在
constexpr
不允许结构绑定。 - 结构绑定只能应用于以下情况。
- 数组
- 类似元组
- 结构数据成员
参考:https://en.cppreference.com/w/cpp/language/structured_binding
如果必须使用结构绑定,请使用std::make_tuple
const auto [ Y_AxisLen, X_AxisLen, fillCharacter ] = std::make_tuple(36, 168, ' ');