在Boost邮件列表中 ,@LouisDionne最近发布了下面这个聪明的技巧来创build一个元组实体: #include <iostream> auto list = [](auto …xs) { return [=](auto access) { return access(xs…); }; }; auto length = [](auto xs) { return xs([](auto …z) { return sizeof…(z); }); }; int main() { std::cout << length(list(1, '2', "3")); // 3 } 现场示例 。 巧妙的是, list是一个lambda采用可变参数列表作为input,并返回一个lambda作为输出,将采取另一个lambda作用于其input。 类似地, length是一个lambdaexpression式,它将向列表的原始input参数提供variadic sizeof…操作符。 sizeof…运算符被封装在一个lambda中,以便它可以传递给list 。 问题 :这个元组创作习惯有没有名字? 也许从函数式编程语言中,更高阶的函数更常用。