Я пытаюсь использовать lexical_cast Boost для моего проекта C ++, но сталкиваюсь с ошибками компиляции с использованием Visual Studio 2010 Professional.
Ошибка выглядит следующим образом:
1> VLGUI_Frame.cpp
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(54): error C2143: syntax error : missing ')' before 'constant'
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(54): error C2143: syntax error : missing ';' before 'constant'
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(54): error C2988: unrecognizable template declaration/definition
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(54): error C2059: syntax error : 'constant'
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(54): error C2059: syntax error : ')'
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(72): error C2143: syntax error : missing ';' before '{'
1>c:\users\dev\external\boost_1_46_1\boost\throw_exception.hpp(72): error C2447: '{' : missing function header (old-style formal list?)
1>
1>Build FAILED.
иВот код, который использует lexical_cast (он не связан, но кто знает, что он может помочь)
#include "boost/lexical_cast.hpp"
...
std::string Frame::toString( )
{
std::string str = "";
try
{
str = VLString::combine( 12,
m_Name.c_str( ),
" : Dimensions[",
boost::lexical_cast< std::string >( m_Rect.width ).c_str( ),
",",
boost::lexical_cast< std::string >( m_Rect.height ).c_str( ),
"] : Loc[",
boost::lexical_cast< std::string >( m_Rect.x ).c_str( ),
",",
boost::lexical_cast< std::string >( m_Rect.y ).c_str( ),
"] : NumChildren[",
boost::lexical_cast< std::string >( m_Children.size( ) ).c_str( ),
"]" );
}
catch( boost::bad_lexical_cast & )
{
str = VLString::combine( 2,
m_Name.c_str( ),
" : lexical_cast failed" );
}
return str;
}
К сожалению, у меня недостаточно опыта с Boost, чтобы самостоятельно диагностировать эту проблему.Я выполнил обязательный Google без результатов.
Спасибо за любую помощь.