Ошибка компиляции в отношении повышения и архитектуры [дубликат]

Вы можете получить доступ к данным внутри 0-мерного массива с помощью индексации [()].

Например, score[()] будет извлекать базовые данные в вашем массиве.

6
задан Jerry 15 February 2012 в 10:05
поделиться

1 ответ

Boost ожидает, что проект будет построен с макросом BOOST_NO_EXCEPTIONS undefined или для определения самой функции boost::throw_exception.

Из <boost/throw_exception.hpp> в версии 1.34.1:

namespace boost
{

#ifdef BOOST_NO_EXCEPTIONS

void throw_exception(std::exception const & e); // user defined

#else

//[Not user defined --Dynguss]
template<class E> inline void throw_exception(E const & e)  
{
    throw e;
}

#endif

} // namespace boost

Заголовки конфигурации Boost определяют, определять ли макрос или нет. Похоже, что это сводится к компилятору, который вы используете, но могут быть и другие факторы. Загляните в папку boost/config/compiler/ для файла заголовка, соответствующего вашему компилятору, затем найдите в нем BOOST_NO_EXCEPTIONS. Должны быть некоторые условия вокруг #define, чтобы помочь объяснить, когда Boost определяет его. Вы можете настроить свою сборку, чтобы избежать определения и пройти мимо ошибки компоновщика.

Если вы не можете изменить конфигурацию компилятора, чтобы избежать определения, тогда вы, вероятно, слева определяя boost::throw_exception(std::exception const & e) себя где-нибудь в коде OpenOffice. Я не знаком с этим кодом, поэтому я не могу дать хорошее предложение, куда он должен идти.

12
ответ дан user1201210 19 August 2018 в 07:24
поделиться
  • 1
    Благодаря! В конце концов я прочитал throw_exception.hpp и уже обнаружил, что именно вы ответили. Я не знал о boost/config/compiler/ для флагов компилятора, но достаточно уверен, BOOST_NO_EXCEPTIONS был определен. – Jerry 3 March 2012 в 13:16
Другие вопросы по тегам:

Похожие вопросы: