Сообщение Re[6]: std::function, suitable return type от 24.09.2014 10:11
Изменено 24.09.2014 10:17 Evgeny.Panasyuk
Здравствуйте, jazzer, Вы писали:
J>Да, действительно, твоя правда. Тогда это дефект стандарта, имхо.
Да, похоже на дефект. Точнее зависит от того, "что же хотел сказать автор".
Может они и имели ввиду, что код ТС неверен (просто без диагностики), а оговорка в operator() избыточна.
J>Потому что в вопросе речь идет о конструкторе
Дело в том что при instantiation конструктора, происходит instantiation вызова данного пользователем function object — так как здесь type erasure.
Поэтому я и смотрел в std::function::operator() — так как он диктует требования к тому как будет инстанциироваться вызов function object.
J>Да, действительно, твоя правда. Тогда это дефект стандарта, имхо.
Да, похоже на дефект. Точнее зависит от того, "что же хотел сказать автор".
Может они и имели ввиду, что код ТС неверен (просто без диагностики), а оговорка в operator() избыточна.
J>Потому что в вопросе речь идет о конструкторе
Дело в том что при instantiation конструктора, происходит instantiation вызова данного пользователем function object — так как здесь type erasure.
Поэтому я и смотрел в std::function::operator() — так как он диктует требования к тому как будет инстанциироваться вызов function object.
Re[6]: std::function, suitable return type
Здравствуйте, jazzer, Вы писали:
J>Да, действительно, твоя правда. Тогда это дефект стандарта, имхо.
Да, похоже на дефект. Точнее зависит от того, "что же хотел сказать автор".
Может они и имели ввиду, что код ТС неверен (просто без диагностики), а оговорка в operator() избыточна.
J>Потому что в вопросе речь идет о конструкторе
Дело в том что при instantiation конструктора, происходит instantiation вызова данного пользователем function object — так как здесь type erasure.
Поэтому я и смотрел в std::function::operator() — так как он диктует требования к тому как будет instantiate вызов function object (эта instantiation происходит во вспомогательном объекте).
J>Да, действительно, твоя правда. Тогда это дефект стандарта, имхо.
Да, похоже на дефект. Точнее зависит от того, "что же хотел сказать автор".
Может они и имели ввиду, что код ТС неверен (просто без диагностики), а оговорка в operator() избыточна.
J>Потому что в вопросе речь идет о конструкторе
Дело в том что при instantiation конструктора, происходит instantiation вызова данного пользователем function object — так как здесь type erasure.
Поэтому я и смотрел в std::function::operator() — так как он диктует требования к тому как будет instantiate вызов function object (эта instantiation происходит во вспомогательном объекте).