cppreference 中的哪一部分告诉我结构化绑定声明仅适用于编译时已知对象?

Enr*_*lis 2 c++ language-lawyer c++17 structured-bindings

我的问题是

cppreference.com 关于结构化绑定声明的页面的哪一部分应该表明它们不能与编译时未知的“事物”一起使用?

该页面不包含任何对编译或运行时的显式引用。

为什么?

我最近遇到了一个关于结构化绑定声明是否适用于 的问题std::vector,因为它的大小在编译时是未知的,所以我不知道。由于我正在尝试了解Boost.Hana 的工作原理,因此我需要在脑海中弄清楚运行时和编译时之间的详细区别是什么,因此我借此机会提出了上述问题。

MSa*_*ers 6

相关部分是std::tuple_size,它产生编译时大小。你不能为std::vector. 它有一个运行时变量std::vector::size