types.pass.cpp revision c0d0cbad9ed434267a7af9531bdeeae52eb6d706
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> 13// class collate_byname 14// : public collate<charT> 15// { 16// public: 17// typedef basic_string<charT> string_type; 18// explicit collate_byname(const char*, size_t refs = 0); 19// explicit collate_byname(const string&, size_t refs = 0); 20// protected: 21// ~collate_byname(); 22// }; 23 24#include <locale> 25#include <string> 26#include <cassert> 27 28#include <stdio.h> 29 30#include "../../../../platform_support.h" // locale name macros 31 32int main() 33{ 34 std::locale l(LOCALE_en_US_UTF_8); 35 { 36 assert(std::has_facet<std::collate_byname<char> >(l)); 37 assert(&std::use_facet<std::collate<char> >(l) 38 == &std::use_facet<std::collate_byname<char> >(l)); 39 } 40 { 41 assert(std::has_facet<std::collate_byname<wchar_t> >(l)); 42 assert(&std::use_facet<std::collate<wchar_t> >(l) 43 == &std::use_facet<std::collate_byname<wchar_t> >(l)); 44 } 45} 46