在一个涉及std::map的算法中,有可能出现大量的first和second,让人不知所措。C++11标准库添加了std::tie,用若干引用构造出一个std::tuple,对它赋以std::tuple对象可以给其中的引用一一赋值。但是这种方法仍远不完美,因为:。为此,C++17引入了结构化绑定。这个名字想强调的是,结构化绑定的意义重在绑定而非声明。结构化绑定有三类行为,与上面的三种语法之间没有对应关系。第一种情况,expression是数组,identifier-list的长度必须与数组长度相等。显然,这些标准库设施是与语言核心绑定的。这种机制给了结构化绑定很强的灵活性。
暂无评论