// -*- C++ -*- // Heavily inspired by /usr/include/c++/4.1/bits // // Copyright (C) 2001, 2002 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 2, or (at your option) // any later version. #ifndef STRFWD_H #define STRFWD_H #ifdef USE_WCHAR_T // Prefer this if possible because GNU libstdc++ has usable // std::ctype locale facets but not // std::ctype. gcc older than 3.4 is also missing // usable std::char_traits. namespace lyx { typedef wchar_t char_type; } #else #include namespace lyx { typedef boost::uint32_t char_type; } #endif namespace std { template class allocator; template struct char_traits; template<> struct char_traits; #ifdef USE_WCHAR_T template<> struct char_traits; #endif template class basic_string; typedef basic_string, allocator > string; template class basic_istream; template class basic_ostream; typedef basic_istream > istream; typedef basic_ostream > ostream; } // namepace std namespace lyx { /// String type for storing the main text in UCS4 encoding typedef std::basic_string, std::allocator > docstring; /// Base class for UCS4 input streams typedef std::basic_istream > idocstream; /// Base class for UCS4 output streams typedef std::basic_ostream > odocstream; #if ! defined(USE_WCHAR_T) extern odocstream & operator<<(odocstream &, char); #endif docstring const & empty_docstring(); std::string const & empty_string(); } // namespace lyx #endif