где про это прочитать? return reinterpret_cast<T*>(
&const_cast<char&>(
reinterpret_cast<const volatile char&>(arg)));
это addressof
arg может быть cv-qualified, a reinterpret_cast не может убирать конс или волатайл, поэтому кастуем к const volatile char&. Дальше убираем const volatile и получаем char&. Берём адрес и кастуем к указателю на тип arg (добавляя обратно const или volatile, если они были в T)
Потому что оператор & может быть перегоужен
Обсуждают сегодня