2016-07-12 7 views
1

Sur le site web de Boost je n'ai trouvé aucune information concernant l'utilisation ou RTTI par boost :: any.Est-ce que boost :: besoin de RTTI?

J'ai lu dans quelques endroits que c'est une exigence, mais j'ai ensuite construit un projet de test simple, et il construit à la fois avec et sans RTTI.

Alors, est-ce que RTTI, avec ses problèmes de performances et de mémoire, est nécessaire avec boost :: any et des classes similaires?

+0

Je viens d'essayer de construire un programme simple avec boost_any, et un exécutable construit avec -fno-RTTI était en fait plus grand que celui construit sans. Je n'ai aucune idée de ce que cela signifie. –

Répondre

3

Depuis boost 1.57 RTTI n'est pas nécessaire pour boost::any. Rappelez-vous que tous les objets utilisés comme boost::any doivent être copiables.

https://svn.boost.org/trac/boost/ticket/10346

+0

Je dois dire que si les compilateurs ne refusaient pas simplement 'typeid' avec RTTI désactivé et permettaient son utilisation dans un contexte non-polymorphe, cela fonctionnerait sans avoir besoin de réinventer la roue. –

+0

@paweldac: OK, c'est la raison de l'information contradictoire que j'ai trouvée. – Pietro