// -*- C++ -*- /** * \file strfwd.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author André Pönitz * \author Enrico Forestieri * * Full author contact details are available in file CREDITS. */ #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 #include // We have to forward declare the string type as not all compilers // do that in the iosfwd header. namespace std { template class basic_string; typedef basic_string, allocator > string; } 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 } // namespace lyx #endif