Вы можете получить доступ к данным внутри 0-мерного массива с помощью индексации [()]
.
Например, score[()]
будет извлекать базовые данные в вашем массиве.
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. Я не знаком с этим кодом, поэтому я не могу дать хорошее предложение, куда он должен идти.
throw_exception.hpp
и уже обнаружил, что именно вы ответили. Я не знал оboost/config/compiler/
для флагов компилятора, но достаточно уверен,BOOST_NO_EXCEPTIONS
был определен. – Jerry 3 March 2012 в 13:16