Boost logo

Boost Users :

From: Puverle, Tomas (IT) (Tomas.Puverle_at_[hidden])
Date: 2004-10-08 03:47:58


> Hi,
> I get the following error from the Filesystem library when
> building boost 1_31 on Solaris with sunpro compiler:
>
> "/db/pub/eq/build/src/boost_1_31_0/boost/iterator/iterator_fac
> ade.hpp", line 622: Error: Could not find a match for
> boost::iterator_core_access::equal<boost::iterator_core_access
> ::Facade1, boost::iterator_core_access::Facade2>(const
> boost::filesystem::directory_iterator, const
> boost::filesystem::directory_iterator,
> boost::is_convertible<boost::filesystem::directory_iterator,
> boost::filesystem::directory_iterator>).
>
> "/db/pub/eq/build/src/boost_1_31_0/libs/filesystem/build/../sr
c/operations_posix_windows.cpp", line 176: Where: While
instantiating >
"boost::operator==<boost::filesystem::directory_iterator,
> boost::filesystem::path, boost::single_pass_traversal_tag,
> boost::filesystem::path&, int,
> boost::filesystem::directory_iterator,
> boost::filesystem::path, boost::single_pass_traversal_tag,
> boost::filesystem::path&, int>(const
> boost::iterator_facade<boost::filesystem::directory_iterator,
> boost::filesystem::path, boost::single_pass_traversal_tag,
> boost::filesystem::path&, int>&, const
> boost::iterator_facade<boost::filesystem::directory_iterator,
> boost::filesystem::path, boost::single_pass_traversal_tag,
> boost::filesystem::path&, int>&)".
>
> "/db/pub/eq/build/src/boost_1_31_0/libs/filesystem/build/../sr
c/operations_posix_windows.cpp", line 176: Where: Instantiated from
non-template code.
>
>
>
> It looks suspiciously similar to bug "[ 976241 ] Compiler
> error for tokenizer on Solaris" from 2004-06-20, with the
> difference that I am using version 5.3 of sunpro rather than 5.5.

I have submitted a similar problem and the proposed fix recently. I am
just waiting on our developers to confirm that it works before
submitting it to boost, but it seems to fix the tokenizer problem, too.
For a quick workaround (before the patch is applied) do this:
At the top of boost/type_traits/detail/bool_trait_def.hpp you will see
something like this:

#if defined(__SUNPRO_CC)
# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
    typedef mpl::bool_< C > type; \
    enum { value = type::value }; \
    /**/
# define BOOST_TT_AUX_BOOL_C_BASE(C) //1

Comment out the line marked with //1.
That seems to have fixed my problems with both 5.3 and 5.5.
HTH,

Tom
--------------------------------------------------------
 
NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited.
 


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