transform.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is dual licensed under the MIT and the University of Illinois Open 6// Source Licenses. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <locale> 11 12// template <class charT> class collate_byname 13 14// string_type transform(const charT* low, const charT* high) const; 15 16#include <locale> 17#include <string> 18#include <cassert> 19 20#include <stdio.h> 21 22int main() 23{ 24 { 25 std::locale l("en_US"); 26 { 27 std::string x("1234"); 28 const std::collate<char>& f = std::use_facet<std::collate<char> >(l); 29 assert(f.transform(x.data(), x.data() + x.size()) != x); 30 } 31 { 32 std::wstring x(L"1234"); 33 const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l); 34 assert(f.transform(x.data(), x.data() + x.size()) != x); 35 } 36 } 37 { 38 std::locale l(""); 39 { 40 std::string x("1234"); 41 const std::collate<char>& f = std::use_facet<std::collate<char> >(l); 42 assert(f.transform(x.data(), x.data() + x.size()) != x); 43 } 44 { 45 std::wstring x(L"1234"); 46 const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l); 47 assert(f.transform(x.data(), x.data() + x.size()) != x); 48 } 49 } 50 { 51 std::locale l("C"); 52 { 53 std::string x("1234"); 54 const std::collate<char>& f = std::use_facet<std::collate<char> >(l); 55 assert(f.transform(x.data(), x.data() + x.size()) == x); 56 } 57 { 58 std::wstring x(L"1234"); 59 const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l); 60 assert(f.transform(x.data(), x.data() + x.size()) == x); 61 } 62 } 63} 64