Вопросы по теме 'reinterpret-cast'
Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему угодно
И static_cast , и reinterpret_cast , похоже, отлично подходят для преобразования void* в другой тип указателя. Есть ли веская причина отдавать предпочтение одному другому?
70864 просмотров
schedule
28.04.2024
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 просмотров
schedule
19.11.2022
Почему я не могу static_cast между char * и unsigned char *?
По-видимому, компилятор считает их несвязанными типами и, следовательно, требуется reinterpret_cast . Почему это правило?
42724 просмотров
schedule
20.07.2023
Обходной путь для указателя-члена на плохой хак?
Итак, у меня есть вариантный класс, в который я недавно добавил возможность хранить данные указателя на функцию-член. Для этого используется следующий код.
class Variant
{
void* _value;
template <typename T1>
void...
379 просмотров
schedule
08.10.2022
структура 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 просмотров
schedule
14.03.2022
Приводит ли 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 просмотров
schedule
26.08.2023
Нарушает ли приведение массива символов к другому типу строгие правила псевдонимов?
Рассмотрим эти две функции:
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 просмотров
schedule
04.11.2023
Почему 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 просмотров
schedule
26.05.2023
Взлом приватных данных с помощью c++
Пояснение: этот вопрос изначально возник из-за проблемы, которую я придумал, и не связан с программированием для реальных систем.
Предположим, у меня есть класс, и я знаю его архитектуру, которую я не могу изменить, и я не хочу его наследовать,...
472 просмотров
schedule
17.12.2023
Является ли макет объекта С++ обязательно статически определенным?
В частности, если предположить, что A является доступным базовым классом B , приводит ли следующий код к неопределенному поведению и гарантируется ли утверждение, что оно не сработает в соответствии со стандартом?
void test(B b1, B b2) {
A*...
355 просмотров
schedule
14.10.2023
Является ли переинтерпретация приведения целого числа к указателю биективным, если целое число имеет тот же размер, что и указатель?
Гарантируется ли целочисленный тип 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 просмотров
schedule
31.10.2022