标签: c++ lambda range language-lawyer
Ranges-v3提案允许我们编写类似
auto f () { return range () | view::transform ([] (auto x) { return x *2; }); }
这很酷。但我想由于odr,以可重复使用的方式(即在标题中)使用这些代码是不可能的。更糟糕的是,在每个cpp文件中,此类函数的结果类型将不同,从而导致链接器错误。唯一的方法是在标题中使用范围来编写老式的仿函数类或者我错过了什么?