9114
C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. No Ads, offtop, flood 2. Полные правила тут https://t.me/ProCxx/259155 Объявления о вакансиях,эвентах - в лс @AlexFails или @MasterZiV канал вакансий https://t.me/ProCxxJobs
Возможно, не консультировался со стандартом сейчас
Читать полностью…
Ну понятно что тут надо очень аккуратно , а вообще лучше не надо изобретать велосипед и делать то, что уже сделано в языке😁
Читать полностью…
В документе говорят, что никаких массивов под объектами нет в текущем стандарте: "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"
Тогда следует использовать offsetof, который определяется имплементацией
Мы просто хотим узнать смещение поля относительно указателя на структуру
Читать полностью…
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, то на нем лежит именно объект данного типа, а не массив байт, которые его представляют.
Читать полностью…
С чего бы это не позволяет. А как же тогда работают функции сишные типо write
Читать полностью…
Ну вот мы и представили структуру как массив байтов)
Читать полностью…
офсет получается разницей указателей. приведённых к char*
Читать полностью…
Да, но когда это в сторонних библиотеках заголовочных это очень тяжело
Читать полностью…
На самом деле все зависит от того чем вы хотите заниматься. Так то можно посоветовать учить что-то связанное с робототехникой или математикой
Читать полностью…