как-то наименее костыльно это сделать? Поля у структур абсолютно одинаковые, но сами структуры разные. Т.е struct Bar {
int a;
int b;
};
struct Foo {
int a;
int b;
};
Bar bar{1,2};
Foo foo = bar;
Нет, нет способа.
но ведь когда очень-очень-очень хочется, то можно? :)
для агрегатов маджик_гет поможет, а так видимо реально нету законного
Когда очен-очень хочется ПРОСТРЕЛИТЬ НОГУ... то я могу это обеспечить
статик/реинтерпрет намного лучше видно
Давай, скастим указатель на голову к указателю на ногу, — и СТРЕЛЯЙ СМЕЛО!
Почему бы тебе просто почленно не присвоить? \
В С вроде так указатели кастуют если поля одинаковые
структур много
в Си другой мир, там вообще нет понятия объекта, например
в си структуры с одинаковым содержанием имеют одинаковый тип, там всё норм
Да точно же видел подобное
Ещё один кандидат на выстрел в голову ?
Нет, не имеют. Там такое же UB
Ну это в С я видел. Иначе как там полиморфизм реализовать
Там нет полиморфизма .
https://en.cppreference.com/w/cpp/numeric/bit_cast там же есть пример его реализации через memcpy, если bit_cast в твоем компиляторе не поддерживается. но это все игра с огнем, конечно: If there is no value of type To corresponding to the value representation produced, the behavior is undefined. If there are multiple such values, which value is produced is unspecified.
Обсуждают сегодня