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

Проблема с использованием reinterpret_cast‹› в С++
Я пытаюсь преобразовать поток данных в структуру, поскольку поток данных состоит из сообщений с фиксированной шириной, и каждое сообщение также имеет полные определенные поля с фиксированной шириной. Я планировал создать структуру, а затем...
1831 просмотров
schedule 10.08.2022

Есть ли хороший способ конвертировать из unsigned char* в char*?
В те дни я много читал о reinterpret_cast<> и о том, как его следует использовать (и избегать его в большинстве случаев). Хотя я понимаю, что использование reinterpret_cast<> для приведения, скажем, unsigned char* к char* ,...
1219 просмотров
schedule 30.12.2022

Хранится ли std::complex с чередованием?
То есть на диске, если у меня есть массив std::complex , он хранится RIRIRIRI или RRRRIIII или что-то еще? Мой реальный вопрос: если у меня есть определенная мной структура, содержащая два числа, могу ли я выполнить переинтерпретацию массива...
1932 просмотров
schedule 24.03.2024

Нарушает ли доступ к первому полю структуры через приведение C строгое сглаживание?
Нарушает ли этот код строгое сглаживание? struct {int x;} a; *(int*)&a = 3 Говоря более абстрактно, допустимо ли приведение типов между разными типами, если примитивные операции чтения/записи имеют правильный тип?
2027 просмотров

Сделать взаимозаменяемые типы классов только с помощью приведения указателя, без необходимости выделения каких-либо новых объектов?
ОБНОВЛЕНИЕ : я ценю предложения "не хочу этого, вместо этого хочу это". Они полезны, особенно когда предоставляются в контексте format-database-m">мотивирующий сценарий . Тем не менее... независимо от того, хорошо это или плохо, мне стало...
1264 просмотров

c++, структура reinterpret_cast* в unsigned char*
Сначала извиняюсь за свой английский :) Итак, у меня есть структура и переменная typedef struct { GHEADER m_Header; BYTE *m_Buf; Addr *m_Abonent; }__attribute__((packed)) PACKET; unsigned char* uc_ptr; Мне нужно отправить...
1026 просмотров
schedule 11.10.2022

Эквивалент reinterpret_cast C++ в C#
Интересно, что эквивалентно reinterpret_cast C++ в C#!? Вот мой образец: class Base { protected int counter = 0; } class Foo : Base { public int Counter { get { return counter; } } } Base b = new Base(); Foo f = b as...
9998 просмотров
schedule 06.07.2023

реинтерпретировать_приведение к указателю на функцию
Вот код, который я написал для экспериментов с reinterpret_cast<T> #include <iostream> #include <cstdlib> using std::cout; using std::endl; int foo() { cout << "foo" << endl; return 0; } void (*bar)();...
4491 просмотров
schedule 21.05.2024

Является ли это законным использованием reinterpret_cast, и если нет, то как мне это сделать?
Этот код демонстрирует проблему, которую я пытаюсь решить: #include <map> class Point { public: float m_x; float m_y; }; typedef std::set<Point *> PointSet; typedef std::set<const Point * const> ConstPointSet; float...
203 просмотров
schedule 05.01.2023

Дает ли переинтерпретация_приведения интеграла к типу указателя и обратно одно и то же значение?
Согласно http://en.cppreference.com/w/cpp/language/reinterpret_cast , Известно, что reinterpret_cast указатель на интеграл достаточного размера и обратно дают одно и то же значение. Мне интересно, верно ли обратное по стандартам. То есть, дает...
283 просмотров

reinterpret_cast, std::aligned_storage и новое размещение
Рассмотрим следующий объект: std::array<std::aligned_storage_t<sizeof(T), alignof(T)>, size> container; Если я уже назвал размещение нового для первого элемента этого массива, я считаю вполне приемлемым сделать следующее:...
609 просмотров

Что происходит здесь, в этой программе на C++?
Я читал эту прекрасную статью Использование и злоупотребление правами доступа . . Я не понял следующий пример из этого. Файл: x.h class X { public: X() : private_(1) { /*...*/ } template<class T> void f( const T& t ) {...
153 просмотров

reinterpret_cast вектор указателей на вектор указателей на базовый класс
Рассмотрим следующий фрагмент кода #include <algorithm> #include <iostream> #include <memory> #include <vector> struct Base { int x; Base(int x) : x(x) {} }; struct Derived : public Base { int y, z;...
1549 просмотров
schedule 13.03.2023

Почему reinterpret_cast не работает, а memcpy работает?
Я пишу код сокета и на основе некоторых параметров использую либо IPv4, либо IPv6. Для этого у меня есть такой код: struct sockaddr final_addr; ... struct sockaddr_in6 addr6; ... memcpy(&final_addr, &addr6, size); ... bind(fd,...
515 просмотров
schedule 23.07.2022

reinterpret_cast в массив переменного размера
Итак, похоже, что я могу использовать reinterpret_cast , чтобы указать моему компилятору ( Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) ) обрабатывать указатель как массив массивов: void f(int *p, size_t n, size_t m) { auto a...
874 просмотров
schedule 09.05.2023

Безопасно ли преобразовывать шаблонную лямбду в `void *`?
Я работаю над реализацией волокон с использованием сопрограмм, реализованных на ассемблере. Сопрограммы работают cocall для изменения стека. Я хотел бы показать это на С++, используя интерфейс более высокого уровня, поскольку сборка cocall...
415 просмотров

реинтерпретация_приведения вектора одного типа к вектору другого типа того же типа
Я не уверен, что вопрос здесь отвечает на этот вопрос из-за странной формулировки, но: если бы у меня был: struct numpair { some_type_with_a_size_of_2 a,b; }; struct bignum { some_type_with_a_size_of_4 a; }; Могу ли я...
563 просмотров
schedule 27.04.2023

Разыменование указателя с каламбуром типа
Я играл с атомарной реализацией в C++. У меня есть приведенный ниже фрагмент кода из вышеупомянутого сообщения SO: #include <atomic> #include <cstdint> #include <iostream> template <class value_t, class block_t> struct...
129 просмотров
schedule 23.09.2022

dynamic_cast обратно к тому же типу объекта завершается ошибкой с множественным наследованием и промежуточной переменной
Предположим, есть иерархия с двумя несвязанными полиморфными классами PCH и GME , подклассом PCH_GME : public GME, public PCH и объектом gme_pch типа PCH_GME* . Почему следующая последовательность приведения gme_pch "ломает" приведение к...
147 просмотров

Перебор всех значений с плавающей запятой с помощью Java
Я разрабатываю математическую функцию и хотел бы проверить ее вывод при каждом значении с плавающей запятой в пределах диапазона. Я уже делал это на C++, но теперь хочу сравнить производительность с Java. Как перебрать все значения с плавающей...
783 просмотров
schedule 19.03.2023