narrow_1.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// License. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===// 990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// <locale> 1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// template <> class ctype<char>; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// char narrow(char c, char dfault) const; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 168bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include <locale> 17a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include <cassert> 1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)int main() 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){ 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::locale l = std::locale::classic(); 221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) { 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) typedef std::ctype<char> F; 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const F& f = std::use_facet<F>(l); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) assert(f.narrow(' ', '*') == ' '); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(f.narrow('A', '*') == 'A'); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(f.narrow('\x07', '*') == '\x07'); 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch assert(f.narrow('.', '*') == '.'); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(f.narrow('a', '*') == 'a'); 31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) assert(f.narrow('1', '*') == '1'); 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)