我在这里有一个非常复杂的例子:
auto someClassFactory(const Arg1& arg1, const Arg2& arg2, const Arg3)
{
auto lambda = [arg1](const SomeArg& a) {
// 10 or so line lambda...
// ...
// ...
};
return SomeClass<decltype(lambda)>{arg2, arg3, lambda};
}
我有一堆类似的工厂函数,用于使用各种不同的仿函数构造 SomeClass。
使用上述没有尾随返回类型的技术可以很好地在gcc 4.8上使用-std=c++1y进行编译,但我还不热衷于使用c++1y功能,也不热衷于使用巨大的、尾随返回类型的代码重复。decltype
还有哪些其他选项可以推导出用于返回类型的 lambda?
我考虑过使用std::function
,但在这种情况下更愿意避免使用它。