Ну понятно что тут надо очень аккуратно , а вообще лучше не надо изобретать велосипед и делать то, что уже сделано в языке😁
Читать полностью…В документе говорят, что никаких массивов под объектами нет в текущем стандарте: "An
object representation as defined by [basic.types] p4 is merely a sequence of unsigned char objects,
not an array, and is therefore unsuitable for pointer arithmetics"
p1839r5, здесь описано, что нельзя интерпретировать объекты как массивы их байтового представления
Читать полностью…привет, у меня есть небольшой вопросики, возможно довольно глупые. Допустим, у меня есть следующая структура:
template<u32 idx>
struct some_struct : public some_parent
{
struct params
{
...
};
...
};
template<typename T>
struct reflect
{
static meta_descriptor* Get()
{
static meta_descriptor Empty{nullptr, 0};
return &Empty;
}
};
Иногда требование -Werror бывает невыполнимо в абсолютном смысле, компилятор может например выдавать false positive. Ну да, баг анализатора, есть версия где его предположительно поправят (и это может быть какая-то следующая мажорная). Приходится давить локально или под конкретную версию глобально.
Читать полностью…Да, но можно вычитать адреса объектов друг из друга - у двух подобъектов разные адреса, т.к. они разные объекты
Читать полностью…Чисто гипотетически будто бы можно так делать, но надо учитывать [[no_unique_address]]
(и наследование тоже)
А что делать с вот этим?
An object of trivially copyable or standard-layout type shall occupy contiguous bytes of storage.Читать полностью…
Ну там тоже несколько правил на этот счет есть (тривиальная копируемость, отсутствие невиртуальных баз и т.д.), но в данном случае можно будет только читать байтовое представление объекта, в противном случае использовать std::bit_cast
или std::start_lifetime_as
Смотри Для чего интерпретировать Если для вычисления относительных адресов то почему нет?
Читать полностью…Если коротко — type aliasing. Если у тебя на участке памяти лежит объект типа T, то на нем лежит именно объект данного типа, а не массив байт, которые его представляют.
Читать полностью…На самом деле все зависит от того чем вы хотите заниматься. Так то можно посоветовать учить что-то связанное с робототехникой или математикой
Читать полностью…