Сообщение Re[3]: std::function, suitable return type от 24.09.2014 9:42
Изменено 24.09.2014 9:46 jazzer
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, jazzer, Вы писали:
_>>>Подскажите, по каким правилам это валидный код?
J>>
EP>Implicit вроде не подходит.
Должен подходить [basic.fundamental]:
EP>Здравствуйте, jazzer, Вы писали:
_>>>Подскажите, по каким правилам это валидный код?
J>>
J>>[func.require]
J>>Define INVOKE (f, t1, t2, ..., tN, R) as INVOKE (f, t1, t2, ..., tN) implicitly converted to R.
EP>Implicit вроде не подходит.
Должен подходить [basic.fundamental]:
Any expression can be explicitly converted to type cv void
Re[3]: std::function, suitable return type
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, jazzer, Вы писали:
_>>>Подскажите, по каким правилам это валидный код?
J>>
EP>Implicit вроде не подходит.
Должен подходить [basic.fundamental]:
А то, о чем ты говоришь — это относится лишь к поведению operator(), а не к самой возможности инстанцирования std::function с другим типом возврата (а вопрос был, как я понимаю, именно в этом).
EP>Здравствуйте, jazzer, Вы писали:
_>>>Подскажите, по каким правилам это валидный код?
J>>
J>>[func.require]
J>>Define INVOKE (f, t1, t2, ..., tN, R) as INVOKE (f, t1, t2, ..., tN) implicitly converted to R.
EP>Implicit вроде не подходит.
Должен подходить [basic.fundamental]:
Any expression can be explicitly converted to type cv void
А то, о чем ты говоришь — это относится лишь к поведению operator(), а не к самой возможности инстанцирования std::function с другим типом возврата (а вопрос был, как я понимаю, именно в этом).