Как установить sh конечный возвращаемый тип лямбда-функции, использующей функции шаблона? - PullRequest
0 голосов
/ 13 июля 2020

Как я могу сделать вывод конечного возвращаемого типа в следующем фрагменте кода, который использует функцию шаблона? Код работает хорошо, как сейчас, но мне нужно знать, могу ли я также добавить завершающий возврат для лямбда-функции ..

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);
}

Ответы [ 2 ]

4 голосов
/ 13 июля 2020

Вы можете сделать следующее:

auto print_int = [](int a) -> decltype(print<int>(a)) {
    return print<int>(a);
};
0 голосов
/ 13 июля 2020

Вы можете просто набрать:

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

или

auto print_int = [](int a) -> decltype(auto) {
    return print<int>(a);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...