Возможно, вам не хватает некоторых заголовков (и это может зависеть от точной версии boost - у меня ее нет).Не удается правильно скомпилировать:
#include <boost/mpl/int.hpp>
#include <boost/mpl/long.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/assert.hpp>
int main()
{
BOOST_MPL_ASSERT(( boost::mpl::equal_to< boost::mpl::long_<10>, boost::mpl::int_<11> > ));
}
Вывод:
# g++ -Wall t.cpp
t.cpp: In function ‘int main()’:
t.cpp:8:2: error: no matching function for call to ‘assertion_failed(mpl_::failed************ boost::mpl::equal_to<mpl_::long_<10l>, mpl_::int_<11> >::************)’
Без правильных заголовков могут возникать различные другие несвязанные ошибки компиляции.
Если вы неЧтобы получить квалификаторы пространства имен, вы можете сделать:
#include <boost/mpl/int.hpp>
#include <boost/mpl/long.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/assert.hpp>
using namespace boost; // brings boost:: into scope
int main()
{
BOOST_MPL_ASSERT(( mpl::equal_to< mpl::long_<10>, mpl::int_<11> > ));
}
Или даже:
#include <boost/mpl/int.hpp>
#include <boost/mpl/long.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/assert.hpp>
using namespace boost::mpl; // brings boost::mpl:: in scope
int main()
{
BOOST_MPL_ASSERT(( equal_to< long_<10>, int_<11> > ));
}