1// 2003-04-24 P�tur Run�lfsson <peturr02@ru.is> 2// Copyright (C) 2003 Free Software Foundation, Inc. 3// 4// This file is part of the GNU ISO C++ Library. This library is free 5// software; you can redistribute it and/or modify it under the 6// terms of the GNU General Public License as published by the 7// Free Software Foundation; either version 2, or (at your option) 8// any later version. 9 10// This library is distributed in the hope that it will be useful, 11// but WITHOUT ANY WARRANTY; without even the implied warranty of 12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13// GNU General Public License for more details. 14 15// You should have received a copy of the GNU General Public License along 16// with this library; see the file COPYING. If not, write to the Free 17// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 18// USA. 19 20#include <fstream> 21#include <locale> 22#include <stdexcept> 23#include <testsuite_hooks.h> 24 25class Cvt : public std::codecvt<wchar_t, char, std::mbstate_t> 26{ 27protected: 28 virtual std::codecvt_base::result 29 do_out(std::mbstate_t&, const wchar_t*, const wchar_t*, const wchar_t*&, 30 char*, char*, char*&) const 31 { throw std::runtime_error("codecvt failed"); } 32}; 33 34int main() 35{ 36 bool test __attribute__((unused)) = true; 37 38 std::locale loc = std::locale(std::locale::classic(), new Cvt); 39 std::wfilebuf* fb = new std::wfilebuf; 40 fb->pubimbue(loc); 41 fb->open("tmp_10132", std::ios_base::out); 42 fb->sputc(L'a'); 43 44 try 45 { 46 delete fb; 47 } 48 catch(std::exception& obj) 49 { 50 VERIFY( false ); 51 } 52 return 0; 53} 54