Opened 13 years ago
Closed 12 years ago
#3241 closed Bugs (fixed)
Patch for convenience.hpp compatibility with STLport
Reported by: | Andrey Semashev | Owned by: | Beman Dawes |
---|---|---|---|
Milestone: | Boost 1.40.0 | Component: | filesystem |
Version: | Boost 1.39.0 | Severity: | Problem |
Keywords: | stlport change_extension | Cc: |
Description
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.
Attachments (1)
Change History (2)
by , 13 years ago
Attachment: | convenience.hpp.patch added |
---|
comment:1 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
(In [62876]) Fix #3241