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

Сообщение Re[8]: [FYI] С++17: Генерация визитера для std::variant на л от 03.10.2017 18:39

Изменено 03.10.2017 18:45 rg45

Re[8]: [FYI] С++17: Генерация визитера для std::variant на л
Здравствуйте, _hum_, Вы писали:

__>night beast, так а точно нельзя это воспринимать как именно что возвращаемое конструктором значение-объект? если нет, то с вашей точки зрения, какой смысл использовать для этой конструкции уже закрепленный ранее символ "->" (неужели нельзя было другой найти, наподобие "->>" или еще чего)


Воспринимать, конечно, можно что угодно и как угодно. Но реальность такова, что у конструкторов нет возвращаемых значений. Говоря популярным языком, конструктор — это процедура, создающая объект на выделенном участке памяти.

Говоря же об упомянутой выше class template argument deduction guide, опять же популярным языком: эту фичу следует расматривать не как конструктор, а как способ вызова конструктора шаблонного класса без явной спецификации фактических параметров шаблона. Определение правила автоматического выведения типов парамеров не заменяет соответсвующий конструктор (не важно, сгенерированный ли компилятором или определенный пользователем), а наоборот, предполагает его существование и доступность!
Re[8]: [FYI] С++17: Генерация визитера для std::variant на л
Здравствуйте, _hum_, Вы писали:

__>night beast, так а точно нельзя это воспринимать как именно что возвращаемое конструктором значение-объект? если нет, то с вашей точки зрения, какой смысл использовать для этой конструкции уже закрепленный ранее символ "->" (неужели нельзя было другой найти, наподобие "->>" или еще чего)


Воспринимать, конечно, можно что угодно и как угодно. Но реальность такова, что у конструкторов нет возвращаемых значений. Говоря популярным языком, конструктор — это процедура, создающая объект на выделенном участке памяти.

Говоря же об упомянутой выше class template argument deduction guide, опять же популярным языком: эту фичу следует расматривать не как конструктор, а как средство, предоставляющее возможность конструирования объекта шаблонного класса без явной спецификации фактических параметров шаблона. Определение правила автоматического выведения типов парамеров не заменяет соответсвующий конструктор (не важно, сгенерированный ли компилятором или определенный пользователем), а наоборот, предполагает его существование и доступность!