STL_MSFT created this revision. STL_MSFT added reviewers: EricWF, mclow.lists. STL_MSFT added a subscriber: cfe-commits.
Avoid narrowing conversions in quoted.pass.cpp. According to the Standard, when char has a signed range and wchar_t has an unsigned range, brace-init has to reject the potentially narrowing conversion. Fixes MSVC error C2397 "conversion from 'char' to 'wchar_t' requires a narrowing conversion". http://reviews.llvm.org/D21712 Files: test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp Index: test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp =================================================================== --- test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp +++ test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp @@ -65,7 +65,7 @@ template <class CharT, class Traits = std::char_traits<CharT>> void round_trip_d ( const CharT *p, char delim ) { std::basic_stringstream<CharT, Traits> ss; - CharT d{delim}; + CharT d(delim); ss << std::quoted(p, d); std::basic_string<CharT, Traits> s; @@ -76,7 +76,7 @@ template <class CharT, class Traits = std::char_traits<CharT>> void round_trip_e ( const CharT *p, char escape ) { std::basic_stringstream<CharT, Traits> ss; - CharT e{escape}; + CharT e(escape); ss << std::quoted(p, CharT('"'), e ); std::basic_string<CharT, Traits> s; @@ -88,8 +88,8 @@ template <class CharT, class Traits = std::char_traits<CharT>> std::basic_string<CharT, Traits> quote ( const CharT *p, char delim='"', char escape='\\' ) { std::basic_stringstream<CharT, Traits> ss; - CharT d{delim}; - CharT e{escape}; + CharT d(delim); + CharT e(escape); ss << std::quoted(p, d, e); std::basic_string<CharT, Traits> s; ss >> s; // no quote @@ -101,8 +101,8 @@ std::basic_stringstream<CharT, Traits> ss; ss << p; - CharT d{delim}; - CharT e{escape}; + CharT d(delim); + CharT e(escape); std::basic_string<CharT, Traits> s; ss >> std::quoted(s, d, e); return s;
Index: test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp =================================================================== --- test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp +++ test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp @@ -65,7 +65,7 @@ template <class CharT, class Traits = std::char_traits<CharT>> void round_trip_d ( const CharT *p, char delim ) { std::basic_stringstream<CharT, Traits> ss; - CharT d{delim}; + CharT d(delim); ss << std::quoted(p, d); std::basic_string<CharT, Traits> s; @@ -76,7 +76,7 @@ template <class CharT, class Traits = std::char_traits<CharT>> void round_trip_e ( const CharT *p, char escape ) { std::basic_stringstream<CharT, Traits> ss; - CharT e{escape}; + CharT e(escape); ss << std::quoted(p, CharT('"'), e ); std::basic_string<CharT, Traits> s; @@ -88,8 +88,8 @@ template <class CharT, class Traits = std::char_traits<CharT>> std::basic_string<CharT, Traits> quote ( const CharT *p, char delim='"', char escape='\\' ) { std::basic_stringstream<CharT, Traits> ss; - CharT d{delim}; - CharT e{escape}; + CharT d(delim); + CharT e(escape); ss << std::quoted(p, d, e); std::basic_string<CharT, Traits> s; ss >> s; // no quote @@ -101,8 +101,8 @@ std::basic_stringstream<CharT, Traits> ss; ss << p; - CharT d{delim}; - CharT e{escape}; + CharT d(delim); + CharT e(escape); std::basic_string<CharT, Traits> s; ss >> std::quoted(s, d, e); return s;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits