如何在以下使用模板函数的代码片段中进行尾随返回类型推导?代码和现在一样运行良好,但我需要知道是否还可以为 lambda 函数添加尾随返回。
template<class T>
T print(T a){
cout << a;
return a;
};
int main()
{
auto print_int = [](int a)/*->How?*/{
return print<int>(a);
};
print_int(4);
}
如何在以下使用模板函数的代码片段中进行尾随返回类型推导?代码和现在一样运行良好,但我需要知道是否还可以为 lambda 函数添加尾随返回。
template<class T>
T print(T a){
cout << a;
return a;
};
int main()
{
auto print_int = [](int a)/*->How?*/{
return print<int>(a);
};
print_int(4);
}
您可以执行以下操作:
auto print_int = [](int a) -> decltype(print<int>(a)) {
return print<int>(a);
};
你可以简单地做:
auto print_int = [](int a) -> auto {
return print<int>(a);
};
或者
auto print_int = [](int a) -> decltype(auto) {
return print<int>(a);
};