1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===// 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// The LLVM Compiler Infrastructure 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)//===----------------------------------------------------------------------===// 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// <locale> 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// class num_put<charT, OutputIterator> 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// iter_type put(iter_type s, ios_base& iob, char_type fill, void* v) const; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <locale> 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <ios> 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <cassert> 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <streambuf> 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "test_iterators.h" 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)typedef std::num_put<char, output_iterator<char*> > F; 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class my_facet 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : public F 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){ 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)public: 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) explicit my_facet(std::size_t refs = 0) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) : F(refs) {} 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32int main() 33{ 34 const my_facet f(1); 35 { 36 std::ios ios(0); 37 void* v = 0; 38 char str[50]; 39 output_iterator<char*> iter = f.put(output_iterator<char*>(str), ios, '*', v); 40 std::string ex(str, iter.base()); 41 assert(ex == "0x0" || ex == "(nil)"); 42 } 43} 44