8

我在这里浏览了关于结构化绑定的论文http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0144r0.pdf但我无法很好地了解哪些类型structs 语法允许绑定到。我最好的猜测是结构必须是聚合类型。或者只有公共数据成员的东西。

我对此有什么警告吗?

4

1 回答 1

5

如果您不想专门化std::tuple_sizestd::tuple_element并且get对于您的类型,那么 [dcl.decomp] 需要:

否则,所有E的非静态数据成员应是 的E或同一明确公共基类的公共直接成员EE不应具有匿名联合成员,并且标识符列表中的元素数应等于的非静态数据成员数E

所以基本上所有数据成员都需要在同一个类中声明,并且它们都需要是公共的,并且您需要提供与成员相同数量的名称。

于 2016-12-01T02:41:55.020 回答