Я просматривал некоторый код и наткнулся на строку, похожую на:
std::tr1::function<bool (int, int)>(//etc...
Синтаксис для типа шаблона, bool (int, int)
был незнаком для меня. Основано на Google, в случае std::tr1::function
Похоже, этот синтаксис используется для определения типа и параметров возврата функции. Это имеет смысл, но почему этот синтаксис работает? Насколько я знаю, шаблоны C ++ могут указывать только типы?
Я попытался создать экземпляр типа в коде как:
bool (int, int) test;
Как я и ожидал, заявление не удалось скомпилировать. По крайней мере, синтаксис должен быть примерно таким:
bool (тест) (int, int);
Является bool (int, int)
трактуется как тип C ++? Какие-нибудь советы по согласованию этого в моей голове?
Спасибо,
Адам
Это называется типом функции.
Вы не можете создавать экземпляры этого, но вы можете создавать указатели на них и typedefs.
Этот вопрос имеет некоторое понимание: Для чего используется тип функции?
Других решений пока нет …