Вопросы по теме 'reinterpret-cast'
Псевдоним строгого указателя: любое решение для конкретной проблемы?
У меня проблема, вызванная нарушением строгого правила псевдонима указателя. У меня есть тип T , полученный из шаблона, и некоторый интегральный тип Int того же размера (как и sizeof ). Мой код по существу делает следующее:
T x =...
806 просмотров
schedule
22.06.2022
Как работает этот reinterpret_cast? (Перенос C++ на Java)
У меня есть код C++, который я пытаюсь перенести на Java, который выглядит так:
struct foostruct {
unsigned char aa : 3;
bool ab : 1;
unsigned char ba : 3;
bool bb : 1;
};
static void foo(const unsigned char* buffer, int length)...
1316 просмотров
schedule
02.06.2022
reinterpret_cast для почти данных модуля (достаточно ли совместимости макета)
Я пытаюсь узнать о static_cast и reinterpret_cast .
Если я прав, стандарт (9.2.18) говорит, что reinterpret_cast для данных pod безопасен:
Указатель на объект POD-struct, надлежащим образом преобразованный с использованием...
1270 просмотров
schedule
20.07.2022
компиляция wxWidgets с флагами c ++ 0x
При попытке скомпилировать wxWidgets-2.9.1 из исходного кода с c++0x флагами с использованием gcc-4.6 . Я обнаружил ошибку
narrowing conversion of '128' from 'int' to 'char' inside { } [-fpermissive] в файле src/gtk/dcclient.cpp . Ошибка...
667 просмотров
schedule
20.04.2024
интерпретировать неподписанный как подписанный
Я работаю над встроенной платформой (ARM) и должен быть осторожен при работе с битовыми шаблонами. Давайте представим, что эта строка находится вне моего влияния:
uint8_t foo = 0xCE; // 0b11001110
Интерпретируется как беззнаковое,...
3066 просмотров
schedule
04.09.2022
Упаковать указатель объекта класса в char * для очереди сообщений
Можно ли правильно и безопасно передать указатель объекта класса через очередь сообщений POSIX?
Например,
Object *obj = new Object();
mq_send(mqdes, static_cast<char*>&obj, sizeof(obj), 1);
а на принимающей стороне выполнить...
1284 просмотров
schedule
28.01.2023
reinterpret_cast - странное поведение
Я столкнулся с причудливой ошибкой, связанной с reinterpret_cast. Просто посмотрите на код ниже:
int* var;
reinterpret_cast<void const **>(&var);
ошибка в VSC ++ 2010: ошибка C2440: 'reinterpret_cast': невозможно преобразовать из...
4465 просмотров
schedule
06.07.2022
Является ли reinterpret_cast массивом в стиле C незаконным С++ 11?
Почему следующий код не одобряется?
double d[4] = {0,1,2,3};
reinterpret_cast<double[2]>(d);
GCC объявляет его invalid cast from type 'double*' to type 'double [2]' , а clang объявляет, что reinterpret_cast from 'double *' to 'double...
5655 просмотров
schedule
22.02.2024
Безопасно ли изменить этот c-cast на reinterpret_cast?
Я пытаюсь удалить приведение в стиле c из кода, над которым я работаю, и меня беспокоит единственная альтернатива.
Исходный код был:
WPARAM param = (WPARAM)(GetDlgItem(IDC_WORKFLOW).m_hWnd);
this->PostMessage(WM_NEXTDLGCTL, param, TRUE);...
1579 просмотров
schedule
07.10.2022
Может ли reinterpret_cast (или любое приведение) преобразовывать значения x в значения l?
Является ли следующий код допустимым (в соответствии со стандартами С++ 11 и/или С++ 14))?
#include <iostream>
#include <utility>
using namespace std;
void foo(int &a) {
cout << a << endl;
}
int main() {...
1230 просмотров
schedule
02.11.2022
Чтение и запись бинарного файла с помощью reinterpreter_cast
Например, если у меня есть класс с именем Obj и класс Obj с именем obj1 . Когда я хочу записать двоичный файл с помощью reinterpret_cast , я открываю этот файл в двоичном режиме, а затем
outstream.write( reinterpret_cast<const char...
1793 просмотров
schedule
16.08.2022
Проверка того, является ли переданный в функцию void* либо shared_ptr, либо unique_ptr
Я работаю над созданием функции для класса, и параметр объявлен как void*, однако внутри функции мне нужно проверить, является ли этот void* либо shared_ptr, либо unique_ptr. Есть ли способ проверить этот тип ситуации?
Это то, с чем я работаю до...
117 просмотров
schedule
02.05.2022
Доступ к массиву за пределами границ в C++ и reinterpret_cast
Скажем, у меня есть такой код
struct A {
int header;
unsigned char payload[1];
};
A* a = reinterpret_cast<A*>(new unsigned char[sizeof(A)+100]);
a->payload[50] = 42;
Это неопределенное поведение? Создание указателя,...
155 просмотров
schedule
08.05.2023
Совместим ли бит std::array со старым массивом C?
Одинаково ли базовое битовое представление для std::array<T,N> v и T u[N] ?
Другими словами, безопасно ли копировать N*sizeof(T) байта из одного в другой? (Либо через reinterpret_cast , либо через memcpy .)
Изменить:
Для...
7463 просмотров
schedule
26.05.2022
С++: int* / float* to char*, зачем получать другой результат, используя reinterpret_cast?
#P1# #P2#
float* в char* : float* pFloat = new float[1];
pFloat[0] = 57; //assign the same value as before
char* pChar = reinterpret_cast< char* >(pFloat);
Результат: pChar[0] = 'а';
Почему я получаю два разных...
960 просмотров
schedule
01.10.2022
Запись целого числа со знаком, как если бы оно было беззнаковым в С++
Является ли reinterpret_cast безопасным для этого, и это лучший способ сделать это?
Например, в приведенном ниже коде у меня есть класс с именем ibytestream , который позволяет читать из него uint16_t s и int16_t s. ibytestream::next это...
216 просмотров
schedule
12.01.2023
Как избежать неопределенного поведения сalign_storage и полиморфизмом
У меня есть код, который в основном делает это:
struct Base {
virtual ~Base() = default;
virtual int forward() = 0;
};
struct Derived : Base {
int forward() override {
return 42;
}
};
typename...
832 просмотров
schedule
21.07.2023
С++ всегда ли reinterpret_cast возвращает результат?
У меня есть два класса, A и B. A является родительским классом B, и у меня есть функция, которая принимает указатель на класс типа A, проверяет, относится ли он также к типу B, и если да, то вызывает другую функция, которая принимает указатель на...
3191 просмотров
schedule
29.06.2023
Доступ к данным с помощью указателя (переинтерпретация приведения) и . или -› оператор
Какова основная цель доступа к данным через адрес указателя с использованием reinterpret_cast. Это быстрее, если да, то как именно?
Ниже приведена программа, которая печатает те же данные структуры через файлы . оператор и через указатель...
106 просмотров
schedule
12.07.2023
Замена байтов при использовании переинтерпретации
При отправке данных по сети преобразование байтовых данных может осуществляться несколькими способами:
12345 --> {0 0 48 57}
typedef unsigned char byte;
//1. Bit shift
int32_t shiftedInteger = (int32_t) (inBytes[0] << 24 | inBytes[1]...
148 просмотров
schedule
24.07.2022