struct X { int a, b; };
int main()
{
auto p = std::pair{ 1, 2 };
const auto&[r1, r2] = p; // ok
X x{ 1, 2 };
const auto&[r3, r4] = x; // error
}
clang 7.0 (on Windows) 的错误信息:
error : cannot decompose this type; 'std::tuple_size<const X>::value' is not a valid
integral constant expression
为什么结构化绑定在 struct 上不能按预期工作?