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

4 ответа

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

1 ответ

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

Мне было интересно, что стандарт говорит о безопасности следующего кода: class A { int v; }; class B: public A { }; // no added data member A a; B& b = static_cast<B&>(a);Очевидно, тип времени выполненияa являетсяAнеBТаким образом, актерский ...

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 ...

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

2 ответа

ошибка reinterpret_cast для enum

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

1 ответ

Каковы затраты времени выполнения static_cast, если добавить константу, сохраняя тот же тип?

5 ответов

Если я правильно понял вопрос, то я чувствую, что ответ в самом вашем вопросе. :)

я старый добрый CRPT (пожалуйста, не отвлекайтесь на ограничения доступа - вопрос не о них): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...

7 ответов

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

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

1 ответ

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

2 ответа

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

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

4 ответа

 доступен в C ++ 11.

вляется эквивалентомstatic_cast с участиемboost::shared_ptr? Другими словами, как мне переписать следующее Base* b = new Derived(); Derived* d = static_cast<Derived*>(b);когда используешьshared_ptr? boost::shared_ptr<Base> b(new Derived()); ...