Сообщение Re: Впал в ступор увидев такое от 16.03.2019 8:22
Изменено 16.03.2019 11:07 rg45
Re: Впал в ступор увидев такое
Здравствуйте, Lanjeron32, Вы писали:
L>
L>Далее автор предлагает "написать определение переменной a".
Он же не требует использовать при этом именно этот конкретный конструктор — который недоступен, согласно стандарту. Но можно воспользоваться конструторами копирования перемещения, которые определены неявно компилятором.
L>
L>struct str {
L>template<bool B> str() {}
L>};
L>extern str a;
L>
L>Далее автор предлагает "написать определение переменной a".
Он же не требует использовать при этом именно этот конкретный конструктор — который недоступен, согласно стандарту. Но можно воспользоваться конструторами копирования перемещения, которые определены неявно компилятором.
Re: Впал в ступор увидев такое
Здравствуйте, Lanjeron32, Вы писали:
L>
L>Далее автор предлагает "написать определение переменной a".
Он же не требует использовать при этом именно этот конкретный конструктор — который недоступен, согласно стандарту. Но можно воспользоваться конструторами копирования перемещения, которые определены неявно компилятором.
Не уверен на счет корректности автоинициализации, как здесь
L>
L>struct str {
L>template<bool B> str() {}
L>};
L>extern str a;
L>
L>Далее автор предлагает "написать определение переменной a".
Он же не требует использовать при этом именно этот конкретный конструктор — который недоступен, согласно стандарту. Но можно воспользоваться конструторами копирования перемещения, которые определены неявно компилятором.
Не уверен на счет корректности автоинициализации, как здесь
Автор: Croessmah
Дата: 16.03.19
, но, до тех пор, пока класс остается POD-типом, можно интерпретировать любой кусок памяти, достаточного размера, как объект данного типа и выполнить инициализацию копированием:Дата: 16.03.19
template <typename T>
using storage = std::array<unsigned char, sizeof(T)>;
str a = reinterpret_cast<const str&>(static_cast<const storage<str>&>(storage<str>()));