Можно ли использовать параметры программы Boost без RTTI?

Я хотел бы отключить RTTI в моем проекте. Однако этот проект использует параметры программы Boost, которые сами зависят от Boost Any, который не поддерживает -fno-rtti.

Мне было интересно, есть ли какое-либо решение использовать Boost Program без RTTI? Определив макрос или не используя некоторые функции?

Спасибо

3

Решение

Ответ — нет». Boost.PO основан на Boost.Any, и пользователи не могут избежать этой зависимости. Boost.Any предоставляет основную структуру хранения Boost.PO, поэтому вы не можете скомпилировать какую-либо полезную часть PO без Any.

4

Другие решения

Ответ «возможно». Некоторые библиотеки Boost будут работать с отключенными исключениями, а некоторые — нет. То же самое для RTTI.

Я предлагаю вам проверить документацию на конкретные библиотеки повышения, которые вас интересуют.

Например, Boost.Array будет работать с отключенными исключениями, а Boost.Format — нет.

Если вы получаете такие сообщения, как, не можете использовать typeid с -fno-rtti, это, вероятно, будет при компиляции некоторой части Boost, которая требует RTTI. Где произойдет ошибка, подскажет какая библиотека (обычно).

Вы можете попробовать BOOST_NO_RTTI и BOOST_NO_TYPEID …

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

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector