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