Resultados da pesquisa a pedido "static-cast"

6 a resposta

Por que o static_cast não pode ser usado para diminuir a conversão quando a herança virtual está envolvida?

Considere o seguinte código: struct Base {}; struct Derived : public virtual Base {}; void f() { Base* b = new Derived; Derived* d = static_cast<Derived*>(b); }Isso é proibido pela norma [n3290: 5.2.9/2]) para que o código não seja compilado, ...

3 a resposta

Union vs. static_cast (void *)

Estou escrevendo código e até agora estava usando estruturas como esta: struct s{ enum Types { zero = 0, one, two }; unsigned int type; void* data; }Eu precisava de uma estrutura genérica para armazenar dados de diferentes classes e eu queria ...

6 a resposta

C ++ Quando devemos preferir usar um static_cast de dois encadeados em vez de reinterpret_cast

Em primeiro lugar, este não é um duplicado dePor que nós reinterpret_cast em C ++ quando dois static_cast encadeados podem fazer seu ...

2 a resposta

Downcast em uma hierarquia de diamantes

Por quêstatic_cast não pode fazer downcast de uma base virtual? 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 ++ ...

5 a resposta

Como implementar uma verificação em tempo de compilação de que um downcast é válido em um CRT

Eu tenho um CRPT antigo simples (por favor, não se distraia com restrições de acesso - a questão não é sobre eles): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...

2 a resposta

reinterpret_cast para quase dados de pod (a compatibilidade de layout é suficiente)

Estou tentando aprender sobrestatic_cast ereinterpret_cast. Se eu estiver correto, o padrão (9.2.18) diz quereinterpret_cast para dados do pod é seguro: Um ponteiro para um objeto POD-struct, convertido adequadamente usando umreinterpret_cast, ...

7 a resposta

Por que temos reinterpret_cast em C ++ quando dois static_cast encadeados podem fazer seu trabalho?

Diga que eu quero transmitirA* parachar* e vice-versa, temos duas opções (quero dizer, muitos de nós pensam que temos duas opções,Porque ambos parecem funcionar! Daí a confusão!): struct A { int age; char name[128]; }; A a; char *buffer ...

7 a resposta

C ++ não pode converter da base A para o tipo B derivado via base virtual A

Eu tenho três classes: class A {}; class B : virtual public A {}; class C : virtual public A {}; class D: public B, public C {};Tentando uma conversão estática de A * para B *, recebo o erro abaixo: cannot convert from base A to derived type B ...

9 a resposta

O meu método para evitar dynamic_cast <> é mais rápido que o dynamic_cast <>?

Eu estava respondendo aPergunta, questão [https://stackoverflow.com/questions/2758158/which-casting-technique-is-better-for-doing-casting-from-upper-class-to-lower-cla] alguns minutos atrás e me trouxe outro: Em um dos meus projetos, faço uma ...

7 a resposta

Qual é a diferença entre o casting de estilo static_cast <> e C?

Existe alguma razão para preferir