Boost logo

Boost Users :

From: Gulevich Vasili Victorovich (basilevs_at_[hidden])
Date: 2008-08-22 13:24:41


Hello.
I'm using stlport-5.1.5 + mingw32 and trying to compile thread library
from boost-1.36.
The following error appears:
--------Compiler output--------
./boost/function/function_base.hpp:In static member function `static
void boost::detail::function::reference_manager<F>::get(const
boost::detail::function::function_buffer&,
boost::detail::function::function_buffer&,
boost::detail::function::functor_manager_operation_type)':
./boost/function/function_base.hpp:224: error: expected initializer
before '&' token
--------Compiler output--------

The context in function_base.hpp:

224: const BOOST_FUNCTION_STD_NS::type_info& check_type =
225: *static_cast<const
BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);

BOOST_FUNCTION_STD_NS is defined as empty because of
BOOST_NO_EXCEPTION_STD_NAMESPACE in the same file: function_base.hpp
on line 41.

BOOST_NO_EXCEPTION_STD_NAMESPACE is found in:
--------boost/config/stdlib/stlport.hpp--------
// If STLport is using it's own namespace, and the real names are in
// the global namespace, then we duplicate STLport's using declarations
// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
// necessarily import all the names we need into namespace std::
//
# if (defined(__STL_IMPORT_VENDOR_CSTD) \
         || defined(__STL_USE_OWN_NAMESPACE) \
         || defined(_STLP_IMPORT_VENDOR_CSTD) \
         || defined(_STLP_USE_OWN_NAMESPACE)) \
      && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined
(_STLP_VENDOR_GLOBAL_CSTD))
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# endif
------boost/config/stdlib/stlport.hpp------
(_STLP_USE_OWN_NAMESPACE and vendor flags is defined in this case)

Replacing function_base.hpp:41 with:
-----
#if defined(BOOST_NO_EXCEPTION_STD_NAMESPACE) &&
!defined(_STLP_USE_OWN_NAMESPACE)
-----
allows compilation of thread library.

Is there an appropriate way to tell BOOST or stlport where type_info is?

--
Sincerely, Basilevs

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net