Home | History | Annotate | Download | only in unicode
      1 /*
      2 **********************************************************************
      3 *   Copyright (C) 2001-2014 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 #if !UCONFIG_NO_CONVERSION  // not available without conversion
     21 
     22 /**
     23  * \file
     24  * \brief C++ API: Unicode iostream like API
     25  *
     26  * At this time, this API is very limited. It contains
     27  * operator<< and operator>> for UnicodeString manipulation with the
     28  * C++ I/O stream API.
     29  */
     30 
     31 #if !defined(_MSC_VER)
     32 namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
     33 #endif
     34 
     35 #if U_IOSTREAM_SOURCE >= 199711
     36 #if (__GNUC__ == 2)
     37 #include <iostream>
     38 #else
     39 #include <istream>
     40 #include <ostream>
     41 #endif
     42 
     43 U_NAMESPACE_BEGIN
     44 
     45 /**
     46  * Write the contents of a UnicodeString to a C++ ostream. This functions writes
     47  * the characters in a UnicodeString to an ostream. The UChars in the
     48  * UnicodeString are converted to the char based ostream with the default
     49  * converter.
     50  * @stable 3.0
     51  */
     52 U_IO_API std::ostream & U_EXPORT2 operator<<(std::ostream& stream, const UnicodeString& s);
     53 
     54 /**
     55  * Write the contents from a C++ istream to a UnicodeString. The UChars in the
     56  * UnicodeString are converted from the char based istream with the default
     57  * converter.
     58  * @stable 3.0
     59  */
     60 U_IO_API std::istream & U_EXPORT2 operator>>(std::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 #endif
     69