Opened 9 years ago

Closed 5 years ago

#8763 closed Bugs (wontfix)

format does not compile with char16_t strings and libc++

Reported by: timblechmann Owned by: James E. King, III
Milestone: Boost 1.66.0 Component: format
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

the following code does not compile with clang:

#include <boost/format.hpp>

int main(int argc, const char * argv[])
{
    std::basic_string<char16_t> abc = (boost::basic_format<char16_t>(u"Hello")).str();
    return 0;
}

the reason is that libc++ does not provide std::ctype<char16_t>, as it is not provided by the standard.

Change History (3)

comment:1 by James E. King, III, 5 years ago

Owner: changed from Samuel Krempp to James E. King, III
Status: newassigned

comment:2 by James E. King, III, 5 years ago

Milestone: To Be DeterminedBoost 1.66.0

This is not a Boost.Format concern. Implementations are not required to provide std::ctype<char16_t>. This failure also happens with libstdc++ 6.3.0, for example.

For more information, see:

https://stackoverflow.com/questions/28360223/gcc-stdctype-specialisation-streams https://stackoverflow.com/questions/41315675/why-does-stdbasic-ifstreamchar16-t-not-work-in-c11

comment:3 by James E. King, III, 5 years ago

Resolution: wontfix
Status: assignedclosed
Note: See TracTickets for help on using tickets.