【问题标题】:How to establish trailing return type of lambda function that use template functions?如何建立使用模板函数的 lambda 函数的尾随返回类型?
【发布时间】:2020-11-02 16:31:10
【问题描述】:

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

【问题讨论】:

    标签: c++ templates lambda trailing-return-type


    【解决方案1】:

    您可以执行以下操作:

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

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2012-06-21
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 2013-11-11
        • 1970-01-01
        相关资源
        最近更新 更多