结构化绑定不允许空的可分解类型。
auto [] = std::make_tuple(); // error
自从P1061R10被接受用于 C++26 以来,这允许结构化绑定引入包(只要该包在模板上下文中声明):
auto [...args] = return_empty_tuple();
auto [one, ...rest] = return_single_tuple();
如果结构化绑定大小为 1,则后者可以...rest
作为空包。return_single_tuple()
我的问题是,...args
即使return_empty_tuple()
结构化绑定大小为零(例如,元组大小为零),仍然可以被声明为空包吗?