ICU-368 #define U_IOSTREAM_SOURCE to the level of I/O streams support

of the platform (see comment inside headers)

X-SVN-Rev: 1250
This commit is contained in:
Yves Arrouye 2000-04-25 21:20:01 +00:00
parent 978f1cfef5
commit f59e194eab
5 changed files with 77 additions and 3 deletions

View File

@ -24,6 +24,22 @@
/* Define whether inttypes.h is available */ /* Define whether inttypes.h is available */
#define HAVE_INTTYPES_H @HAVE_INTTYPES_H@ #define HAVE_INTTYPES_H @HAVE_INTTYPES_H@
/*
* Define what support for C++ streams is available.
* If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
* (1997711 is the date the ISO/IEC C++ FDIS was published), and then
* one should qualify streams using the std namespace in ICU header
* files.
* If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
* available instead (198506 is the date when Stroustrup published
* "An Extensible I/O Facility for C++" at the summer USENIX conference).
* If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
* support for them will be silently suppressed in ICU.
*
*/
#define U_IOSTREAM_SOURCE @U_IOSTREAM_SOURCE@
/* Determines whether specific types are available */ /* Determines whether specific types are available */
#define HAVE_INT8_T @HAVE_INT8_T@ #define HAVE_INT8_T @HAVE_INT8_T@
#define HAVE_UINT8_T @HAVE_UINT8_T@ #define HAVE_UINT8_T @HAVE_UINT8_T@

View File

@ -6,7 +6,7 @@
* *
******************************************************************************* *******************************************************************************
* *
* FILE NAME : platform.h * FILE NAME : pos2.h
* *
* Date Name Description * Date Name Description
* 05/13/98 nos Creation (content moved here from ptypes.h). * 05/13/98 nos Creation (content moved here from ptypes.h).
@ -24,6 +24,22 @@
/* Define whether inttypes.h is available */ /* Define whether inttypes.h is available */
#define HAVE_INTTYPES_H 0 #define HAVE_INTTYPES_H 0
/*
* Define what support for C++ streams is available.
* If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
* (1997711 is the date the ISO/IEC C++ FDIS was published), and then
* one should qualify streams using the std namespace in ICU header
* files.
* If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
* available instead (198506 is the date when Stroustrup published
* "An Extensible I/O Facility for C++" at the summer USENIX conference).
* If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
* support for them will be silently suppressed in ICU.
*
*/
#define U_IOSTREAM_SOURCE 198506
/* Determines whether specific types are available */ /* Determines whether specific types are available */
#define HAVE_INT8_T 0 #define HAVE_INT8_T 0
#define HAVE_UINT8_T 0 #define HAVE_UINT8_T 0

View File

@ -6,7 +6,7 @@
* *
******************************************************************************* *******************************************************************************
* *
* FILE NAME : platform.h * FILE NAME : pos400.h
* *
* Date Name Description * Date Name Description
* 05/13/98 nos Creation (content moved here from ptypes.h). * 05/13/98 nos Creation (content moved here from ptypes.h).
@ -25,6 +25,22 @@
/* Define whether inttypes.h is available */ /* Define whether inttypes.h is available */
#define HAVE_INTTYPES_H 0 #define HAVE_INTTYPES_H 0
/*
* Define what support for C++ streams is available.
* If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
* (1997711 is the date the ISO/IEC C++ FDIS was published), and then
* one should qualify streams using the std namespace in ICU header
* files.
* If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
* available instead (198506 is the date when Stroustrup published
* "An Extensible I/O Facility for C++" at the summer USENIX conference).
* If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
* support for them will be silently suppressed in ICU.
*
*/
#define U_IOSTREAM_SOURCE 198506
/* Determines whether specific types are available */ /* Determines whether specific types are available */
#define HAVE_INT8_T 0 #define HAVE_INT8_T 0
#define HAVE_UINT8_T 0 #define HAVE_UINT8_T 0

View File

@ -24,6 +24,22 @@
/* Define whether inttypes.h is available */ /* Define whether inttypes.h is available */
#define HAVE_INTTYPES_H 0 #define HAVE_INTTYPES_H 0
/*
* Define what support for C++ streams is available.
* If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
* (1997711 is the date the ISO/IEC C++ FDIS was published), and then
* one should qualify streams using the std namespace in ICU header
* files.
* If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
* available instead (198506 is the date when Stroustrup published
* "An Extensible I/O Facility for C++" at the summer USENIX conference).
* If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
* support for them will be silently suppressed in ICU.
*
*/
#define U_IOSTREAM_SOURCE 199711
/* Determines whether specific types are available */ /* Determines whether specific types are available */
#define HAVE_INT8_T 0 #define HAVE_INT8_T 0
#define HAVE_UINT8_T 0 #define HAVE_UINT8_T 0

View File

@ -39,8 +39,13 @@ class UnicodeConverterCPP;
* UnicodeString are truncated to char, leading to undefined results with * UnicodeString are truncated to char, leading to undefined results with
* anything not in the Latin1 character set. * anything not in the Latin1 character set.
*/ */
class ostream; #if U_IOSTREAM_SOURCE >= 199711
#include <iostream>
U_COMMON_API std::ostream &operator<<(std::ostream& stream, const UnicodeString& s);
#elif U_IOSTREAM_SOURCE >= 198506
#include <iostream.h>
U_COMMON_API ostream &operator<<(ostream& stream, const UnicodeString& s); U_COMMON_API ostream &operator<<(ostream& stream, const UnicodeString& s);
#endif
/** /**
* Unicode String literals in C++. * Unicode String literals in C++.
@ -1904,7 +1909,12 @@ private:
friend class UnicodeStringStreamer; friend class UnicodeStringStreamer;
friend class UnicodeConverterCPP; friend class UnicodeConverterCPP;
#if U_IOSTREAM_SOURCE >= 199711
friend U_COMMON_API std::ostream &operator<<(std::ostream& stream, const UnicodeString& s);
#elif U_IOSTREAM_SOURCE >= 198506
friend U_COMMON_API ostream &operator<<(ostream& stream, const UnicodeString& s); friend U_COMMON_API ostream &operator<<(ostream& stream, const UnicodeString& s);
#endif
friend class StringCharacterIterator; friend class StringCharacterIterator;
/* /*