Home | History | Annotate | Download | only in unicode
      1 /*
      2 **********************************************************************
      3 *   Copyright (C) 2001-2007 International Business Machines
      4 *   Corporation and others.  All Rights Reserved.
      5 **********************************************************************
      6 *  FILE NAME : ustream.h
      7 *
      8 *   Modification History:
      9 *
     10 *   Date        Name        Description
     11 *   06/25/2001  grhoten     Move iostream from unistr.h
     12 ******************************************************************************
     13 */
     14 
     15 #ifndef USTREAM_H
     16 #define USTREAM_H
     17 
     18 #include "unicode/unistr.h"
     19 
     20 /**
     21  * \file
     22  * \brief C++ API: Unicode iostream like API
     23  *
     24  * At this time, this API is very limited. It contains
     25  * operator<< and operator>> for UnicodeString manipulation with the
     26  * C++ I/O stream API.
     27  */
     28 
     29 #if U_IOSTREAM_SOURCE >= 199711
     30 #include <istream>
     31 #include <ostream>
     32 
     33 U_NAMESPACE_BEGIN
     34 
     35 /**
     36  * Write the contents of a UnicodeString to a C++ ostream. This functions writes
     37  * the characters in a UnicodeString to an ostream. The UChars in the
     38  * UnicodeString are converted to the char based ostream with the default
     39  * converter.
     40  * @stable 3.0
     41  */
     42 U_IO_API std::ostream & U_EXPORT2 operator<<(std::ostream& stream, const UnicodeString& s);
     43 
     44 /**
     45  * Write the contents from a C++ istream to a UnicodeString. The UChars in the
     46  * UnicodeString are converted from the char based istream with the default
     47  * converter.
     48  * @stable 3.0
     49  */
     50 U_IO_API std::istream & U_EXPORT2 operator>>(std::istream& stream, UnicodeString& s);
     51 U_NAMESPACE_END
     52 
     53 #elif U_IOSTREAM_SOURCE >= 198506
     54 /* <istream.h> and <ostream.h> don't exist. */
     55 #include <iostream.h>
     56 
     57 U_NAMESPACE_BEGIN
     58 U_IO_API ostream & U_EXPORT2 operator<<(ostream& stream, const UnicodeString& s);
     59 
     60 U_IO_API istream & U_EXPORT2 operator>>(istream& stream, UnicodeString& s);
     61 U_NAMESPACE_END
     62 
     63 #endif
     64 
     65 /* No operator for UChar because it can conflict with wchar_t  */
     66 
     67 #endif
     68