If 'works' isn't a requirement, I can write code that fails faster than yours.
There are various ways to implement dynamic_cast, and some are faster than others. Stroustrup published a paper about using primes to improve dynamic_cast, for example. Unfortunately it's unusual to control how your compiler implements the cast, but if performance really matters to you, then you do have control over which compiler you use.
However, not using dynamic_cast will always be faster than using it — but if you don't actually need dynamic_cast, then don't use it! If you do need dynamic lookup, then there will be some overhead, and you can then compare various strategies.
--
Antes de enviar um e-mail para o grupo leia:
http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira: vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en
Na maioria das vezes que vejo comentários do tipo "C++ é mais lento que C", nunca é uma comparação justa.Se eu pegar um código em C, ele de certa forma é C++ também, se eu compilar ele com um compilador C++, ele vai ficar mais lento?
[...] Raramente em tais comparações exatamente o mesmo problema é resolvido.
Exemplo: disparar exceções é muito caro.
Demonstração: aqui está um programa C++ que dispara como exceção um objeto cujo ato de construção implica a cópia de uma string, e aqui está um programa C que retorna um código de erro do tipo int. O programa C é MUITO mais rápido!!!!!!1111
Duh.
-- Vinícius dos Santos Oliveira https://about.me/vinipsmaker |