Результаты поиска по запросу "static-cast"
Мой метод для избежания dynamic_cast <> быстрее, чем сам dynamic_cast <>?
Я отвечалвопрос несколько минут назад, и это подняло мне еще один:В одном из моих проектов я делаю разбор сетевых сообщений. Сообщения в форме:
Использование литья в стиле C не является безопасным. Он никогда не проверяет, чтобы разные типы можно было смешивать вместе. Приведение типов в C ++ помогает вам убедиться, что приведение типов выполняется в соответствии со связанными объектами (на основе используемого вами приведения). Это более рекомендуемый способ использования приведений, чем использование традиционных приведений в стиле C, которые всегда вредны.
, что я хочу броситьA* вchar* и наоборот, у нас есть два варианта (я имею в виду, многие из нас думают, что у нас есть два варианта,потому что оба, кажется, работают! Отсюда и путаница!) struct A { int age; char name[128]; }; A a; char *buffer ...
На некоторых архитектурах указатель может быть больше, чем просто адрес. Изменение типа указателя может изменить его битовую комбинацию, даже если он не изменяет указанный адрес.
ущем проекте стандарта (и C ++ 17),это [http://eel.is/c++draft/expr.static.cast#13]написано о static_castingvoid *: Значение типа «указатель наCV1 void »можно преобразовать в значение типа« указатель наCV2 T ”, где T - тип объекта иCV2 является ...
Если я правильно понял вопрос, то я чувствую, что ответ в самом вашем вопросе. :)
я старый добрый CRPT (пожалуйста, не отвлекайтесь на ограничения доступа - вопрос не о них): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...
, Попробуй.
у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 ...