0

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

2 回答 2

4

您可以执行以下操作:

auto print_int = [](int a) -> decltype(print<int>(a)) {
    return print<int>(a);
};
于 2020-07-13T13:10:05.330 回答
0

你可以简单地做:

auto print_int = [](int a) -> auto {
    return print<int>(a);
};

或者

auto print_int = [](int a) -> decltype(auto) {
    return print<int>(a);
};
于 2020-07-13T16:53:10.817 回答