Информация об изменениях

Сообщение Re[3]: std::function, suitable return type от 24.09.2014 9:42

Изменено 24.09.2014 9:46 jazzer

Здравствуйте, Evgeny.Panasyuk, Вы писали:

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>>

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 с другим типом возврата (а вопрос был, как я понимаю, именно в этом).