Результаты поиска по запросу "static-cast"

2 ответа

На некоторых архитектурах указатель может быть больше, чем просто адрес. Изменение типа указателя может изменить его битовую комбинацию, даже если он не изменяет указанный адрес.

ущем проекте стандарта (и C ++ 17),это [http://eel.is/c++draft/expr.static.cast#13]написано о static_castingvoid *: Значение типа «указатель наCV1 void »можно преобразовать в значение типа« указатель наCV2 T ”, где T - тип объекта иCV2 является ...

1 ответ

static_cast и reinterpret_cast для std :: align_storage

Может кто-нибудь объяснить, пожалуйста, немного кода о приведении в http://en.cppreference.com/w/cpp/types/aligned_storage [http://en.cppreference.com/w/cpp/types/aligned_storage]пожалуйста? может следующий код return *static_cast<const ...

4 ответа

Должен ли я использовать static_cast или reinterpret_cast при приведении void * к чему-либо

ТОП публикаций

2 ответа

> Я хочу обратное преобразование: от двойного * до двойного []. Что вы не можете получить: указатель не содержит информацию о длине массива. Однако вы знаете, что этот массив всегда имеет два элемента, поэтому: вы можете обращаться с указателем как с именем массива: double * p = кое-что (); р [0] = 1,0; р [1] = 2,0; потому что по определению arrayname [index] равно * (arrayname + index)

аюсь узнать оstatic_cast а такжеreinterpret_cast. Если я прав, стандарт (9.2.18) говорит, чтоreinterpret_cast для стручка данных безопасно: Указатель на объект POD-struct, соответствующим образом преобразованный ...

1 ответ

Законно ли приводить указатель на ссылку на массив, используя static_cast в C ++?

У меня есть указательT * pValues что я хотел бы рассматривать какT (&values)[N] В этом так ответhttps://stackoverflow.com/a/2634994/239916 [https://stackoverflow.com/a/2634994/239916]Предлагаемый способ сделать это T (&values)[N] = ...

7 ответов

В чем разница между static_cast <> и кастом в стиле C?

2 ответа

ошибка reinterpret_cast для enum

Почему я не могу использовать оператор reinterpret_cast для такого приведения?

7 ответов

Использование литья в стиле C не является безопасным. Он никогда не проверяет, чтобы разные типы можно было смешивать вместе. Приведение типов в C ++ помогает вам убедиться, что приведение типов выполняется в соответствии со связанными объектами (на основе используемого вами приведения). Это более рекомендуемый способ использования приведений, чем использование традиционных приведений в стиле C, которые всегда вредны.

, что я хочу броситьA* вchar* и наоборот, у нас есть два варианта (я имею в виду, многие из нас думают, что у нас есть два варианта,потому что оба, кажется, работают! Отсюда и путаница!) struct A { int age; char name[128]; }; A a; char *buffer ...

1 ответ

Безопасность недействительного даункаста с использованием static_cast (или reinterpret_cast) для наследования без добавления членов

3 ответа

Почему я не могу static_cast между char * и unsigned char *?

По-видимому, компилятор считает их несвязанными типами и, следовательно,