Результаты поиска по запросу "static-cast"
Почему я не могу static_cast между char * и unsigned char *?
По-видимому, компилятор считает их несвязанными типами и, следовательно,
static_cast и reinterpret_cast для std :: align_storage
Может кто-нибудь объяснить, пожалуйста, немного кода о приведении вhttp://en.cppreference.com/w/cpp/types/aligned_storage пожалуйста?может следующий код
, Попробуй.
уstatic_cast не может опуститься с виртуальной базы? struct A {}; struct B : public virtual A {}; struct C : public virtual A {}; struct D : public B, public C {}; int main() { D d; A& a = d; D* p = static_cast<D*>(&a); //error }g ++ 4.5 ...
ошибка reinterpret_cast для enum
Почему я могуиспользовать оператор reinterpret_cast для такого приведения?
Использование литья в стиле C не является безопасным. Он никогда не проверяет, чтобы разные типы можно было смешивать вместе. Приведение типов в C ++ помогает вам убедиться, что приведение типов выполняется в соответствии со связанными объектами (на основе используемого вами приведения). Это более рекомендуемый способ использования приведений, чем использование традиционных приведений в стиле C, которые всегда вредны.
, что я хочу броситьA* вchar* и наоборот, у нас есть два варианта (я имею в виду, многие из нас думают, что у нас есть два варианта,потому что оба, кажется, работают! Отсюда и путаница!) struct A { int age; char name[128]; }; A a; char *buffer ...
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 ...
Законно ли приводить указатель на ссылку на массив, используя static_cast в C ++?
У меня есть указательT * pValues что я хотел бы рассматривать какT (&values)[N] В этом так ответhttps://stackoverflow.com/a/2634994/239916 [https://stackoverflow.com/a/2634994/239916]Предлагаемый способ сделать это T (&values)[N] = ...
> Я хочу обратное преобразование: от двойного * до двойного []. Что вы не можете получить: указатель не содержит информацию о длине массива. Однако вы знаете, что этот массив всегда имеет два элемента, поэтому: вы можете обращаться с указателем как с именем массива: double * p = кое-что (); р [0] = 1,0; р [1] = 2,0; потому что по определению arrayname [index] равно * (arrayname + index)
аюсь узнать оstatic_cast а такжеreinterpret_cast. Если я прав, стандарт (9.2.18) говорит, чтоreinterpret_cast для стручка данных безопасно: Указатель на объект POD-struct, соответствующим образом преобразованный ...