如何建立使用模板函数的lambda函数的尾部返回类型

How to establish trailing return type of lambda function that use template functions?

本文关键字:函数 lambda 返回类型 尾部 何建立 建立      更新时间:2023-10-16

如何在下面使用模板函数的代码片段中进行尾随返回类型推导?代码现在运行得很好,但我需要知道是否也可以为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);
};