[Boost-bugs] [Boost C++ Libraries] #3241: Patch for convenience.hpp compatibility with STLport

Subject: [Boost-bugs] [Boost C++ Libraries] #3241: Patch for convenience.hpp compatibility with STLport
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-07-03 15:50:34


#3241: Patch for convenience.hpp compatibility with STLport
--------------------------------------+-------------------------------------
 Reporter: andysem | Owner: bemandawes
     Type: Bugs | Status: new
Milestone: Boost 1.40.0 | Component: filesystem
  Version: Boost 1.39.0 | Severity: Problem
 Keywords: stlport change_extension |
--------------------------------------+-------------------------------------
 The STLport has optimization for std::string so that string concatenation
 via operator+ does not yield an std::string object but rather a template
 expression temporary object of an internal type. This optimization breaks
 compilation of the convenience.hpp header on MSVC 9, at least. In the
 change_extension function the concatenation result is passed to operator/,
 which causes the following error:

 {{{
 .\boost/filesystem/convenience.hpp(84) : error C2679: binary '/' : no
 operator found which takes a right-hand operand of type
 'stlp_std::priv::__bstr_sum<_CharT,_Traits,_Alloc,_Left,_Right,_StorageDirection>'
 (or there is no acceptable conversion)
         with
         [
             _CharT=char,
             _Traits=stlp_std::char_traits<char>,
             _Alloc=stlp_std::allocator<char>,
 _Left=stlp_std::priv::__bstr_wrapper<char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,
 _Right=stlp_std::priv::__bstr_sum<char,stlp_std::char_traits<char>,stlp_std::allocator<char>,stlp_std::priv::__bstr_wrapper<char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,stlp_std::priv::__sum_storage_elem<char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,stlp_std::priv::__on_right>,
             _StorageDirection=stlp_std::priv::__on_right
         ]
 }}}

 The attached patch resolves the problem.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/3241>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:00 UTC