Вопросы по теме 'reinterpret-cast'

Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему угодно
И static_cast , и reinterpret_cast , похоже, отлично подходят для преобразования void* в другой тип указателя. Есть ли веская причина отдавать предпочтение одному другому?
70864 просмотров

C++ reinterpret_cast для производного класса
Родительский класс: template <class T> class Point { protected T x; T y; }; Производный класс: template <class T> class Point3DTopo: public Point <T> { protected: T z; Face...
1896 просмотров
schedule 31.01.2024

использование reinterpret_cast для аргументов функции-члена
вот код: class containerA {}; class containerB : public containerA { public: containerB () {}; containerB(const containerB& cb) { cout << "containerB copy ctor" << endl; } };...
563 просмотров
schedule 18.05.2024

С++ реинтерпретировать_каст, виртуальный и шаблоны в порядке?
В С++ предполагается следующая иерархия классов: class BaseClass { }; class ChildClass : public BaseClass { }; Далее предположим фабричные классы для этих двух классов с общим шаблонным базовым классом: template<typename T> class...
2781 просмотров

Почему я не могу static_cast между char * и unsigned char *?
По-видимому, компилятор считает их несвязанными типами и, следовательно, требуется reinterpret_cast . Почему это правило?
42724 просмотров

Обходной путь для указателя-члена на плохой хак?
Итак, у меня есть вариантный класс, в который я недавно добавил возможность хранить данные указателя на функцию-член. Для этого используется следующий код. class Variant { void* _value; template <typename T1> void...
379 просмотров

структура reinterpret_cast в массив фиксированного размера
У меня есть структура S , которая объединяет два массива фиксированного размера типа T . template<typename T> struct S { array<array<T, 20>, 10> x1; array<T, 10> x2; }; Я хочу получить ссылку на одномерный...
1015 просмотров
schedule 13.01.2024

Может ли кто-нибудь объяснить, как в этом коде работает переинтерпретация приведения?
прочитайте следующую программу, которая использует reinterpret_cast. #include <iostream> class A { public: A() : m_i(0) { } protected: int m_i; }; class B { public: B() : m_d(0.0) { } protected: double...
76 просмотров
schedule 01.03.2023

Как сделать reinterpret_cast в java, чтобы получить массив пикселей
Я хочу преобразовать следующий код в язык Java. однако я не могу найти способ выполнить reinterpret_cast в java. пожалуйста, помогите мне. char *pixels= reinterpret_cast<char*>(FinalImage.data); программа может быть показана следующим...
434 просмотров
schedule 10.07.2023

Создание недопустимой ссылки с помощью переинтерпретации приведения
Я пытаюсь определить, вызывает ли следующий код неопределенное поведение: #include <iostream> class A; void f(A& f) { char* x = reinterpret_cast<char*>(&f); for (int i = 0; i < 5; ++i) std::cout << x[i]; }...
237 просмотров

Приводит ли reinterpret_cast к неопределенному поведению?
У меня есть шаблон класса A , который содержит контейнер указателей ( T* ): template <typename T> class A { public: // ... private: std::vector<T*> data; }; и кучу функций вроде: void f(const A<const T>&);...
3358 просмотров
schedule 21.06.2022

Как void работает с псевдонимом типа?
Я внимательно прочитал правила для псевдонима типов: http://en.cppreference.com/w/cpp/language/reinterpret_cast#Type_aliasing У меня конкретно есть вопрос о последнем правиле, в котором нам разрешено приводить к: char или unsigned char :...
69 просмотров

Нарушает ли приведение массива символов к другому типу строгие правила псевдонимов?
Рассмотрим эти две функции: int f1() { alignas(int) char buf[sizeof(int)] = {}; return *reinterpret_cast<int*>(buf); } int f2() { alignas(int) char buf[sizeof(int)] = {}; char* ptr = buf; return...
803 просмотров

Почему ICU использует этот барьер псевдонимов при выполнении reinterpret_cast?
Я переношу код из ICU 58.2 в ICU 59.1, где они изменили тип символа с uint16_t на char16_t. Я собирался просто сделать прямое reinterpret_cast, где мне нужно было преобразовать типы, но обнаружил, что ICU 59.1 на самом деле предоставляет функции для...
158 просмотров
schedule 24.05.2023

Приведение к разным базовым классам дает разные результаты. С++
Может быть, мой вопрос не совсем правильно сформирован, но мой код все прояснит. #include <iostream> using namespace std; struct A{int n;}; struct B{int n;}; struct C : A, B{}; int main() { C c; C* pc = &c;...
75 просмотров

Взлом приватных данных с помощью c++
Пояснение: этот вопрос изначально возник из-за проблемы, которую я придумал, и не связан с программированием для реальных систем. Предположим, у меня есть класс, и я знаю его архитектуру, которую я не могу изменить, и я не хочу его наследовать,...
472 просмотров
schedule 17.12.2023

Является ли макет объекта С++ обязательно статически определенным?
В частности, если предположить, что A является доступным базовым классом B , приводит ли следующий код к неопределенному поведению и гарантируется ли утверждение, что оно не сработает в соответствии со стандартом? void test(B b1, B b2) { A*...
355 просмотров

Является ли переинтерпретация приведения целого числа к указателю биективным, если целое число имеет тот же размер, что и указатель?
Гарантируется ли целочисленный тип IntT , такой что sizeof(IntT) == sizeof(void*) , и переменная указанного типа i , что reinterpret_cast<IntT>(reinterpret_cast<void*>(i)) == i ? Это похоже на этот вопрос , но этот вопрос...
78 просмотров
schedule 07.06.2024

Почему const_cast не работает с аргументами std :: function?
Я предоставляю константные и неконстантные варианты функции-члена, где я повторно использую константную версию для реализации неконстантной версии, как описано в в этом ответе из книг Скотта Мейерса. Версия const принимает аргумент типа:...
514 просмотров
schedule 13.12.2022

Вызов методов производного класса из указателя на базовый класс через переинтерпретацию указателя на метод. Это УБ?
С указателем на объект производного типа, назначенным указателю его базового класса, я обнаружил, что вы можете переинтерпретировать_приведение метода из производного класса к указателю базового класса, даже если базовый класс не имеет любую такую...
44 просмотров