std :: tr1 :: function и значение шаблона, которое он принимает

Я просматривал некоторый код и наткнулся на строку, похожую на:

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 ++? Какие-нибудь советы по согласованию этого в моей голове?

Спасибо,
Адам

3

Решение

Это называется типом функции.

Вы не можете создавать экземпляры этого, но вы можете создавать указатели на них и typedefs.

Этот вопрос имеет некоторое понимание: Для чего используется тип функции?

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]