سؤال

I would like to disable RTTI in a project of mine. However, this project uses Boost Program Options which itself depends on Boost Any which does not support -fno-rtti.

I was wondering if there was any solution to use Boost Program without RTTI ? By defining a macro or by not using some of the features ?

Thanks

هل كانت مفيدة؟

المحلول

The answer is "no". Boost.PO is based on Boost.Any and this dependence can't be avoided by users currently. Boost.Any gives the main storage structure of Boost.PO so you can't compile some useful part of PO without Any.

نصائح أخرى

The answer is "maybe". Some boost libraries will work with exceptions disabled - some will not. Same for RTTI.

I suggest you check the documentation for the particular boost libraries that you are interested in.

For example, Boost.Array will work with exceptions disabled, but Boost.Format will not.

If you are getting messages like cannot use typeid with -fno-rtti, that will probably be while compiling some part of Boost that requires RTTI. Where the error occurs will tell you which library (usually).

You can try BOOST_NO_RTTI and BOOST_NO_TYPEID ...

http://www.boost.org/doc/libs/1_46_1/libs/exception/doc/configuration_macros.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top