Я пытаюсь создать псевдоним типа std::function
, потому что планирую использовать что-то еще в будущем. И я хотел бы иметь возможность легко сделать это изменение. Но я получаю сообщение об ошибке от компилятора, которого я действительно не понимаю. Я понимаю, что это значит, но я не понимаю этого в этом контексте.Тип псевдонима для std :: function
Пример:
#include <functional>
template < typename Ret, typename... Args > using MyFunc = std::function< Ret(Args...) >;
int main(int argc, char **argv)
{
MyFunc<void(int)> fn;
return 0;
}
Формирует:
..\main.cpp|7|required from here|
..\main.cpp|3|error: function returning a function|
Если вы имели в виду 'fn' to' function ', то это будет' MyFunc '. Вы пытаетесь объявить переменную типа 'function ' - функцию, возвращающую функцию; следовательно, ошибка. –
Спасибо @IgorTandetnik Ты спасатель жизни. –
Обратите внимание, что 'std :: function' не является типом; это шаблон. –