Ticket #2356 (closed Bugs: fixed)
bug at compile time when using customized char_traits
|Reported by:||Nicolas Vanhoren <nicolas.vanhoren@…>||Owned by:||turkanis|
|Version:||Boost Development Trunk||Severity:||Problem|
This is quite simple, boost::iostream::stream and boost::iostream::stream_buffer are obviously made to allow the usage of customized char_traits (I mean, a character trait class that is not some sort a specialization of std::char_trait), as we can guess it by looking at their optional second template argument.
But when doing so, it does not compile (see test.cpp). This problem seems to come from an internal class of iostreams, concept_adapter, and one of its methods. As I can understand, that method forces a buffer to a type like std::basic_buffer<Any,std::char_traits<Any> >, which is incorrect (it should uses the character trait type passed as an argument to boost::iostreams::stream).
The provided patch is working, but it just some trick to allow the code to compile. In the worst case that little helper class should be redesigned to add the character trait type to the list of its template parameters.