Итак, c ++ 17 содержит std::function
Руководства по вычетам:
int foo();
Я могу сделать:
std::function bar(foo);
Но я застрял на c ++ 14 компилятор. Там мне нужно сделать еще что-то вроде: function<int()> bar(foo)
. Мне было интересно, есть ли способ создать std::function
без передачи указателя функции и, явно предоставляя подпись функции? Так, например, make_pair
будет определять тип его возврата из своих аргументов. . Мне было интересно, могу ли я написать что-то подобное для function
s, даже используя c ++ 14, например:
auto bar = make_function(foo);
Это выполнимо?
Примечание. Мой реальный случай состоит в том, что foo
- это шаблонная функция с множеством аргументов, которые я не хочу выводить. Итак, моя мотивация здесь - создать function
без необходимости указывать типы параметров.
std::function bar(foo)
не работает в c ++ 17. Предоставьте фактический минимальный воспроизводимый пример того, что вы хотите сделать в юридическом c++17 и попросить реализовать нечто подобное в c ++ 14. - person Yakk - Adam Nevraumont   schedule 05.03.2019function
, который можно было бы полностью определить, передав мне только указатель на функцию. Я думал, что это ясно? Моя редакция работает на вас? - person Jonathan Mee   schedule 05.03.2019