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 ctype<char>;
13 
14 // char narrow(char c, char dfault) const;
15 
16 #include <locale>
17 #include <cassert>
18 
main()19 int main()
20 {
21     std::locale l = std::locale::classic();
22     {
23         typedef std::ctype<char> F;
24         const F& f = std::use_facet<F>(l);
25 
26         assert(f.narrow(' ', '*') == ' ');
27         assert(f.narrow('A', '*') == 'A');
28         assert(f.narrow('\x07', '*') == '\x07');
29         assert(f.narrow('.', '*') == '.');
30         assert(f.narrow('a', '*') == 'a');
31         assert(f.narrow('1', '*') == '1');
32     }
33 }
34