|
Boost : |
From: Andrew Fernandes (andrew_at_[hidden])
Date: 2004-12-03 12:55:05
I found the same thing, with the same setup.
I managed to track it down to a problem in the file
"boost_1_32_0/boost/program_options/detail/utf8_codecvt_facet.hpp"
The "program_options" library incorrectly checks the "BOOST_NO_STDC_NAMESPACE"
macro, when really, it should be checking the "BOOST_NO_STD_LOCALE" macro
(since the locale stuff is all that the file is interested in).
I made the following one-symbol patch (attached), and the library now seems to
compile and work with no problems.
-Andrew.
-- Andrew D. Fernandes (mailto:andrew_at_[hidden]) Telephone +1 919 602 4214, (http://www.fernandes.org/) Ralf Juergensen wrote: > Hi, > > when I compile program_options using VC7.1 and STLport 4.6.2 I get the > following errors: > > <snip> > ...found 672 targets... > ...updating 14 targets... > vc-C++ > bin\boost\libs\program_options\build\libboost_program_options.lib\vc-7_1-stlport\release\threading-multi\utf8_codecvt_facet.obj > > utf8_codecvt_facet.cpp > E:\work\CommonLibs\test\boost_1_32_0\boost_1_32_0\boost\program_options\detail\utf8_codecvt_facet.hpp(70) > : error C2039: 'codecvt' : is not a member of 'operator``global > namespace''' > E:\work\CommonLibs\test\boost_1_32_0\boost_1_32_0\boost\program_options\detail\utf8_codecvt_facet.hpp(70) > : error C2873: 'codecvt' : symbol cannot be used in a using-declaration > </snip> > > when STLport is used, BOOST_NO_STDC_NAMESPACE is defined on my machine. > and then the following code fails > (from program_options\detail\utf8_codecvt_facet.hpp around line 70): > > #elif defined(BOOST_NO_STDC_NAMESPACE) > typedef std::mbstate_t mbstate_t; > namespace std{ > using ::codecvt; > } // namespace std > #endif > > But STLport 4.6.2 puts codecvt correctly under std... > > Would be great if this can be fixed for STLport users :-) > > Regards > > Ralf > > _______________________________________________ > Unsubscribe & other changes: > http://lists.boost.org/mailman/listinfo.cgi/boost >
--- boost_1_32_0/boost/program_options/detail/utf8_codecvt_facet.hpp.original 2004-11-03 01:13:24.000000000 -0500
+++ boost_1_32_0/boost/program_options/detail/utf8_codecvt_facet.hpp 2004-12-03 12:19:51.864798400 -0500
@@ -64,7 +64,7 @@
#endif
#elif defined(__COMO__) || defined(_MSC_VER) && _MSC_VER <= 1300
typedef ::mbstate_t mbstate_t;
-#elif defined(BOOST_NO_STDC_NAMESPACE)
+#elif defined(BOOST_NO_STD_LOCALE)
typedef std::mbstate_t mbstate_t;
namespace std{
using ::codecvt;
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk