При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
Re: Загадочные типы int() и int(int)
От:
Аноним
Дата:
26.05.06 12:46
Оценка:
Здравствуйте, brankovic, Вы писали:
B>Вчера наткнулся на следующую запись:
B>
B>При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
Это типы callback функций.
Например int() — int test(){...}
B>При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
int — целое число.
int() == int(void) — функция, возвращающая int и принимающая void. — Вас же не смущает когда вы пишете: int f() == int (f)()
int(int) == int(int) — функция, возвращающая int и принимающая int. — Аналогично: int f(int) == int (f)(int).
Здравствуйте, brankovic, Вы писали:
B>При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
Тип int(int) имеет переменная объявленная так: int foo(int) — т.е. это функция
Здравствуйте, brankovic, Вы писали:
B>При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
int - он и в Африке int int() — функция, не принимающая параметров, и возвращающая int int(int) — функция, принимающая один параметр типа int, и возвращающая int
B>При этом такая специализация работает. Получается, что int, int(), int(int) — три разных типа, но что это за типы и зачем они нужны? В Страуструпе я такого не нашел — подскажите кто что знает, плиз!
Чего-то сдается мне, что судя по специализациям шаблона R() — вызов конструктора без аргументов
А R(int) — вызов конструктора инициализации...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, _nn_, Вы писали:
__>int — целое число. __>int() == int(void) — функция, возвращающая int и принимающая void. — Вас же не смущает когда вы пишете: int f() == int (f)() __>int(int) == int(int) — функция, возвращающая int и принимающая int. — Аналогично: int f(int) == int (f)(int).
Смущает, когда я пишу 'int f ();' где-то между инструкциями. Но я проверил — вполне работает, если f() далее определена. Всё оказалось так просто, а я переживал...