Как отключить Boost Concept Check

Для компиляции проекта C ++ Net Lib под Windows с помощью Visual Studio 2008 мне нужно отключить проверку концепции (см. Эту ветку: https://groups.google.com/forum/#!msg/cpp-netlib/G-hM25EnCWA/gdsHBaVfmggJ)

Компиляция работает в Release, но не в Debug (ошибка при компиляции .cpp)

Мне удалось получить компиляцию заголовка успешно, определив NDEBUG перед включением заголовка клиента. Тем не менее, это не удается позже, когда компоновщик хочет связать с версией выпуска библиотеки Boost.system: пока я использую отладку. Я получаю эту ошибку:

6> LINK: фатальная ошибка LNK1104: невозможно открыть файл ‘libboost_system-vc90-mt-1_50.lib’

Я хотел предотвратить это с помощью BOOST_SYSTEM_NO_LIB, но он по-прежнему хочет ссылаться на версию релиза (мои ссылки на projet ‘libboost_system-vc90-mt-gd-1_50.lib’ (библиотека отладки))

Существует ли простой макрос, который нужно определить перед включением заголовка, который отключит материал Boost.ConceptCheck, как это делается в сборке выпуска? Я не нашел никакой информации ни в документации Boost, ни в самих заголовочных файлах.

Большое спасибо

Gaetan

4

Решение

Вот что я бы сделал:

#include <boost/concept/assert.hpp>
// redefine concept assert, suppress the warning etc.
#undef BOOST_CONCEPT_ASSERT
#define BOOST_CONCEPT_ASSERT(Model)
#include <boost/concept_check.hpp>

struct not_an_iterator
{};int main()
{
BOOST_CONCEPT_ASSERT((InputIterator<not_an_iterator>));
return 0;
}

Это заставит concept_assert ничего не делать, но я боюсь, что это не будет
чтобы предотвратить ошибки компоновщика, которые кажутся неясными.

3

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

Других решений пока нет …

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