это не слабый аргумент: тип определяется набором разрешенных операций, выравниванием и размером; если разрешенных операций меньше, чем у похожего типа, то это уже другой тип
алиасинг - двоякое понятие. Нужно иметь возможность брать указатель на любую память, но не нужно, чтобы компилятор маниакально ожидал, что этот указатель указывает одновременно на все объекты в скоупе
алиасинг - двоякое понятие. Нужно иметь возможность брать указатель на любую память, но не нужно, чтобы компилятор маниакально ожидал, что этот указатель указывает одновременно на все объекты в скоупе
Возможно, но я в этом не уверен на 100%, пусть об этой теоретической проблеме голова болит у стандартописателей
Ты главное пойми, что щас для строк надо юзать char8_t, который не алиасится (хотя пока неудобно, но стремимся к этому), а для памяти std::byte (то для чего щас юзают char или uint8_t)
Я не вижу где бы void* был similar для какого либо другого типа. Правда я не вижу и где бы определялось, что базовый класс был бы similar с наследником. Так что сдаюсь.
Друзья, ни кто случаем не знает Telegram-чата для программистов приложений для ВКонтакте? Есть вопрос по подключению моего встраиваемого приложения по HTTPS к моему сайту.
Привет. Подскажите , пожалуйста , про addrspace_cast<> что это такое и для чего нужен. И ещё не пойму что значит ошибка вроде binding reference to const ... to reference ... changes address space ? В чём суть этого всего?