У меня есть два класса: у одного есть реализация, а у другого нет. Затем в функции main() я определяю экземпляр класса с реализацией, а затем переинтерпретирую_cast адрес экземпляра другому классу без реализации. Ошибок нет:
struct StructNoImplementaion;
struct StructWithImplementation {
StructWithImplementation(int m) : member1(m) {}
int member1;
};
int main()
{
StructWithImplementation s73(3);
// no error
StructNoImplementaion* p73 = reinterpret_cast(&s73);
// error: cannot convert from 'StructWithImplemetation' to 'StructNoImplementation'
//StructNoImplementaion* p73 = static_cast(&s73);
}
Может кто-нибудь помочь мне понять, почему? reinterpret_cast не нужно знать расположение памяти целевого класса? Если я заменю «reinterpret_cast» на «static_cast», появится ожидаемая ошибка.
У меня есть два класса: у одного есть реализация, а у другого нет. Затем в функции main() я определяю экземпляр класса с реализацией, а затем переинтерпретирую_cast адрес экземпляра другому классу без реализации. Ошибок нет: [code]struct StructNoImplementaion;
struct StructWithImplementation { StructWithImplementation(int m) : member1(m) {} int member1; };
int main() { StructWithImplementation s73(3); // no error StructNoImplementaion* p73 = reinterpret_cast(&s73);
// error: cannot convert from 'StructWithImplemetation' to 'StructNoImplementation' //StructNoImplementaion* p73 = static_cast(&s73); } [/code] Может кто-нибудь помочь мне понять, почему? reinterpret_cast не нужно знать расположение памяти целевого класса? Если я заменю «reinterpret_cast» на «static_cast», появится ожидаемая ошибка.
У меня есть два класса: у одного есть реализация, а у другого нет. Затем в функции main() я определяю экземпляр класса с реализацией, а затем переинтерпретирую_cast адрес экземпляра другому классу без реализации. Ошибок нет:
struct...
struct foo { static constexpr const void* ptr = reinterpret_cast(0x1); }; авто main() -> int { вернуть 0; } Приведенный выше пример нормально компилируется в g++ v4.9 (Live Demo), но не компилируется в clang...
Предположим, у вас есть массив чисел с плавающей запятой, представляющих необработанные данные, и несколько типов, представляющих 2D-фигуры, членами которых являются только числа с плавающей запятой, например:
#include
#include
Предположим, у вас есть массив чисел с плавающей запятой, представляющих необработанные данные, и несколько типов, представляющих 2D-фигуры, членами которых являются только числа с плавающей запятой, например:
#include
#include