Можно ли использовать параметры программы Boost без RTTI?
Я хотел бы отключить RTTI в моем проекте. Однако этот проект использует параметры программы Boost, которые сами зависят от Boost Any, который не поддерживает -fno-rtti.
Мне было интересно, есть ли какое-либо решение использовать Boost Program без RTTI? Определив макрос или не используя некоторые функции?
Спасибо
2 ответа
Ответ - нет". Boost.PO основан на Boost.Any, и пользователи не могут избежать этой зависимости. Boost.Any предоставляет основную структуру хранения Boost.PO, поэтому вы не можете скомпилировать какую-либо полезную часть PO без Any.
Ответ "возможно". Некоторые библиотеки 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