From a5bbd505d7a5f350409b42ebe075e24a4f2c63ce Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Sat, 27 Apr 2019 16:07:26 +0300 Subject: [PATCH] ICU-20578 headers: guard all C++ headers using U_SHOW_CPLUSPLUS_API support including all files in C cleanup and simplify the test/hdrtest Signed-off-by: Alon Bar-Lev --- .gitignore | 3 +- icu4c/source/common/unicode/appendable.h | 5 + icu4c/source/common/unicode/brkiter.h | 6 + icu4c/source/common/unicode/bytestream.h | 5 + icu4c/source/common/unicode/bytestrie.h | 5 + .../source/common/unicode/bytestriebuilder.h | 5 + icu4c/source/common/unicode/caniter.h | 4 + icu4c/source/common/unicode/casemap.h | 5 + icu4c/source/common/unicode/char16ptr.h | 7 +- icu4c/source/common/unicode/chariter.h | 6 + icu4c/source/common/unicode/dbbi.h | 6 + icu4c/source/common/unicode/dtintrv.h | 6 +- icu4c/source/common/unicode/edits.h | 5 + icu4c/source/common/unicode/errorcode.h | 5 + icu4c/source/common/unicode/filteredbrk.h | 5 + icu4c/source/common/unicode/idna.h | 5 + icu4c/source/common/unicode/localebuilder.h | 8 +- icu4c/source/common/unicode/locdspnm.h | 4 + icu4c/source/common/unicode/locid.h | 7 +- icu4c/source/common/unicode/messagepattern.h | 4 + icu4c/source/common/unicode/normalizer2.h | 5 + icu4c/source/common/unicode/normlzr.h | 4 + icu4c/source/common/unicode/parsepos.h | 5 + icu4c/source/common/unicode/rbbi.h | 4 + icu4c/source/common/unicode/rep.h | 6 + icu4c/source/common/unicode/resbund.h | 6 + icu4c/source/common/unicode/schriter.h | 6 + icu4c/source/common/unicode/simpleformatter.h | 5 + icu4c/source/common/unicode/std_string.h | 4 + icu4c/source/common/unicode/strenum.h | 6 + icu4c/source/common/unicode/stringpiece.h | 5 + .../source/common/unicode/stringtriebuilder.h | 5 + icu4c/source/common/unicode/symtable.h | 5 + icu4c/source/common/unicode/ucharstrie.h | 5 + .../source/common/unicode/ucharstriebuilder.h | 5 + icu4c/source/common/unicode/uchriter.h | 6 + icu4c/source/common/unicode/unifilt.h | 6 + icu4c/source/common/unicode/unifunct.h | 5 + icu4c/source/common/unicode/unimatch.h | 3 + icu4c/source/common/unicode/uniset.h | 6 + icu4c/source/common/unicode/unistr.h | 7 +- icu4c/source/common/unicode/uobject.h | 5 + icu4c/source/common/unicode/usetiter.h | 5 + icu4c/source/i18n/unicode/alphaindex.h | 6 + icu4c/source/i18n/unicode/basictz.h | 4 + icu4c/source/i18n/unicode/calendar.h | 4 + icu4c/source/i18n/unicode/choicfmt.h | 4 + icu4c/source/i18n/unicode/coleitr.h | 4 + icu4c/source/i18n/unicode/coll.h | 4 + .../i18n/unicode/compactdecimalformat.h | 5 + icu4c/source/i18n/unicode/curramt.h | 5 + icu4c/source/i18n/unicode/currpinf.h | 4 + icu4c/source/i18n/unicode/currunit.h | 5 + icu4c/source/i18n/unicode/datefmt.h | 4 + icu4c/source/i18n/unicode/dcfmtsym.h | 6 +- icu4c/source/i18n/unicode/decimfmt.h | 5 + icu4c/source/i18n/unicode/dtfmtsym.h | 4 + icu4c/source/i18n/unicode/dtitvfmt.h | 4 + icu4c/source/i18n/unicode/dtitvinf.h | 4 + icu4c/source/i18n/unicode/dtptngen.h | 6 + icu4c/source/i18n/unicode/dtrule.h | 4 + icu4c/source/i18n/unicode/fieldpos.h | 4 + icu4c/source/i18n/unicode/fmtable.h | 4 + icu4c/source/i18n/unicode/format.h | 4 + icu4c/source/i18n/unicode/formattedvalue.h | 6 + icu4c/source/i18n/unicode/fpositer.h | 5 + icu4c/source/i18n/unicode/gender.h | 4 + icu4c/source/i18n/unicode/gregocal.h | 4 + icu4c/source/i18n/unicode/listformatter.h | 4 + icu4c/source/i18n/unicode/measfmt.h | 5 + icu4c/source/i18n/unicode/measunit.h | 5 + icu4c/source/i18n/unicode/measure.h | 5 + icu4c/source/i18n/unicode/msgfmt.h | 4 + icu4c/source/i18n/unicode/nounit.h | 4 + icu4c/source/i18n/unicode/numberformatter.h | 12 +- .../i18n/unicode/numberrangeformatter.h | 12 +- icu4c/source/i18n/unicode/numfmt.h | 4 + icu4c/source/i18n/unicode/numsys.h | 4 + icu4c/source/i18n/unicode/plurfmt.h | 4 + icu4c/source/i18n/unicode/plurrule.h | 4 + icu4c/source/i18n/unicode/rbnf.h | 4 + icu4c/source/i18n/unicode/rbtz.h | 4 + icu4c/source/i18n/unicode/regex.h | 5 + icu4c/source/i18n/unicode/region.h | 7 +- icu4c/source/i18n/unicode/reldatefmt.h | 6 + .../i18n/unicode/scientificnumberformatter.h | 5 + icu4c/source/i18n/unicode/search.h | 4 + icu4c/source/i18n/unicode/selfmt.h | 7 +- icu4c/source/i18n/unicode/simpletz.h | 4 + icu4c/source/i18n/unicode/smpdtfmt.h | 4 + icu4c/source/i18n/unicode/sortkey.h | 4 + icu4c/source/i18n/unicode/stsearch.h | 4 + icu4c/source/i18n/unicode/tblcoll.h | 5 + icu4c/source/i18n/unicode/timezone.h | 4 + icu4c/source/i18n/unicode/tmunit.h | 5 + icu4c/source/i18n/unicode/tmutamt.h | 10 +- icu4c/source/i18n/unicode/tmutfmt.h | 4 + icu4c/source/i18n/unicode/translit.h | 4 + icu4c/source/i18n/unicode/tzfmt.h | 5 + icu4c/source/i18n/unicode/tznames.h | 5 + icu4c/source/i18n/unicode/tzrule.h | 4 + icu4c/source/i18n/unicode/tztrans.h | 4 + icu4c/source/i18n/unicode/unirepl.h | 4 + icu4c/source/i18n/unicode/vtzone.h | 4 + icu4c/source/io/unicode/ustream.h | 6 + icu4c/source/test/hdrtst/Makefile.in | 171 ++++++------------ icu4c/source/test/hdrtst/cxxfiles.txt | 138 -------------- icu4c/source/test/hdrtst/pfiles.txt | 5 - 108 files changed, 569 insertions(+), 272 deletions(-) delete mode 100644 icu4c/source/test/hdrtst/cxxfiles.txt delete mode 100644 icu4c/source/test/hdrtst/pfiles.txt diff --git a/.gitignore b/.gitignore index 5b5180d1157..f64b51fe626 100644 --- a/.gitignore +++ b/.gitignore @@ -429,9 +429,8 @@ icu4c/source/test/cintltst/release icu4c/source/test/cintltst/x64 icu4c/source/test/cintltst/x86 icu4c/source/test/compat/Makefile -icu4c/source/test/hdrtst/*.[co] icu4c/source/test/hdrtst/Makefile -icu4c/source/test/hdrtst/cfiles.txt +icu4c/source/test/hdrtst/ht_* icu4c/source/test/intltest/*.d icu4c/source/test/intltest/*.o icu4c/source/test/intltest/*.plg diff --git a/icu4c/source/common/unicode/appendable.h b/icu4c/source/common/unicode/appendable.h index 8512c2f3031..4beacaf6583 100644 --- a/icu4c/source/common/unicode/appendable.h +++ b/icu4c/source/common/unicode/appendable.h @@ -23,6 +23,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" U_NAMESPACE_BEGIN @@ -231,4 +234,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __APPENDABLE_H__ diff --git a/icu4c/source/common/unicode/brkiter.h b/icu4c/source/common/unicode/brkiter.h index ac1bf1df29f..a0fbf724503 100644 --- a/icu4c/source/common/unicode/brkiter.h +++ b/icu4c/source/common/unicode/brkiter.h @@ -29,6 +29,10 @@ * \brief C++ API: Break Iterator. */ +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #if UCONFIG_NO_BREAK_ITERATION U_NAMESPACE_BEGIN @@ -658,5 +662,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // BRKITER_H //eof diff --git a/icu4c/source/common/unicode/bytestream.h b/icu4c/source/common/unicode/bytestream.h index 493115f71c7..0d60492fe23 100644 --- a/icu4c/source/common/unicode/bytestream.h +++ b/icu4c/source/common/unicode/bytestream.h @@ -38,6 +38,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/std_string.h" @@ -267,4 +270,6 @@ class StringByteSink : public ByteSink { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __BYTESTREAM_H__ diff --git a/icu4c/source/common/unicode/bytestrie.h b/icu4c/source/common/unicode/bytestrie.h index c57b8ccfeb5..9dc0ed26157 100644 --- a/icu4c/source/common/unicode/bytestrie.h +++ b/icu4c/source/common/unicode/bytestrie.h @@ -23,6 +23,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/stringpiece.h" #include "unicode/uobject.h" #include "unicode/ustringtrie.h" @@ -517,4 +520,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __BYTESTRIE_H__ diff --git a/icu4c/source/common/unicode/bytestriebuilder.h b/icu4c/source/common/unicode/bytestriebuilder.h index 2a1f28e6255..b98374bb8fd 100644 --- a/icu4c/source/common/unicode/bytestriebuilder.h +++ b/icu4c/source/common/unicode/bytestriebuilder.h @@ -23,6 +23,9 @@ #define __BYTESTRIEBUILDER_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/bytestrie.h" #include "unicode/stringpiece.h" #include "unicode/stringtriebuilder.h" @@ -179,4 +182,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __BYTESTRIEBUILDER_H__ diff --git a/icu4c/source/common/unicode/caniter.h b/icu4c/source/common/unicode/caniter.h index 9b21ba52d89..13e524ff6ad 100644 --- a/icu4c/source/common/unicode/caniter.h +++ b/icu4c/source/common/unicode/caniter.h @@ -12,6 +12,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_NORMALIZATION #include "unicode/uobject.h" @@ -207,4 +209,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_NORMALIZATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/casemap.h b/icu4c/source/common/unicode/casemap.h index 477eb484d13..53af84fa74d 100644 --- a/icu4c/source/common/unicode/casemap.h +++ b/icu4c/source/common/unicode/casemap.h @@ -8,6 +8,9 @@ #define __CASEMAP_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/stringpiece.h" #include "unicode/uobject.h" @@ -489,4 +492,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __CASEMAP_H__ diff --git a/icu4c/source/common/unicode/char16ptr.h b/icu4c/source/common/unicode/char16ptr.h index a7c5f1a0c5e..c8a9ae6c35d 100644 --- a/icu4c/source/common/unicode/char16ptr.h +++ b/icu4c/source/common/unicode/char16ptr.h @@ -7,9 +7,12 @@ #ifndef __CHAR16PTR_H__ #define __CHAR16PTR_H__ -#include #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + +#include + /** * \file * \brief C++ API: char16_t pointer wrappers with @@ -305,4 +308,6 @@ inline OldUChar *toOldUCharPtr(char16_t *p) { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __CHAR16PTR_H__ diff --git a/icu4c/source/common/unicode/chariter.h b/icu4c/source/common/unicode/chariter.h index 70d7a248833..0e9b7cdd601 100644 --- a/icu4c/source/common/unicode/chariter.h +++ b/icu4c/source/common/unicode/chariter.h @@ -13,6 +13,9 @@ #define CHARITER_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/unistr.h" /** @@ -725,4 +728,7 @@ CharacterIterator::getLength(void) const { } U_NAMESPACE_END + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/dbbi.h b/icu4c/source/common/unicode/dbbi.h index a2c3d7d7523..3de9cc38140 100644 --- a/icu4c/source/common/unicode/dbbi.h +++ b/icu4c/source/common/unicode/dbbi.h @@ -13,6 +13,10 @@ #ifndef DBBI_H #define DBBI_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/rbbi.h" #if !UCONFIG_NO_BREAK_ITERATION @@ -39,4 +43,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/dtintrv.h b/icu4c/source/common/unicode/dtintrv.h index aa6ca71f23d..15e15c9d405 100644 --- a/icu4c/source/common/unicode/dtintrv.h +++ b/icu4c/source/common/unicode/dtintrv.h @@ -15,6 +15,9 @@ #define __DTINTRV_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -22,7 +25,6 @@ * \brief C++ API: Date Interval data type */ - U_NAMESPACE_BEGIN @@ -157,4 +159,6 @@ DateInterval::operator!=(const DateInterval& other) const { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/edits.h b/icu4c/source/common/unicode/edits.h index 79e98b0cc27..01155ab02e1 100644 --- a/icu4c/source/common/unicode/edits.h +++ b/icu4c/source/common/unicode/edits.h @@ -8,6 +8,9 @@ #define __EDITS_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -523,4 +526,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __EDITS_H__ diff --git a/icu4c/source/common/unicode/errorcode.h b/icu4c/source/common/unicode/errorcode.h index 81cad207452..fe7b5183232 100644 --- a/icu4c/source/common/unicode/errorcode.h +++ b/icu4c/source/common/unicode/errorcode.h @@ -26,6 +26,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" U_NAMESPACE_BEGIN @@ -136,4 +139,6 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __ERRORCODE_H__ diff --git a/icu4c/source/common/unicode/filteredbrk.h b/icu4c/source/common/unicode/filteredbrk.h index 2444114e9a1..a084556206e 100644 --- a/icu4c/source/common/unicode/filteredbrk.h +++ b/icu4c/source/common/unicode/filteredbrk.h @@ -11,6 +11,9 @@ #define FILTEREDBRK_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/brkiter.h" #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION @@ -142,4 +145,6 @@ U_NAMESPACE_END #endif // #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // #ifndef FILTEREDBRK_H diff --git a/icu4c/source/common/unicode/idna.h b/icu4c/source/common/unicode/idna.h index f08658e502e..6dfcfe48db2 100644 --- a/icu4c/source/common/unicode/idna.h +++ b/icu4c/source/common/unicode/idna.h @@ -24,6 +24,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_IDNA #include "unicode/bytestream.h" @@ -322,4 +324,7 @@ private: U_NAMESPACE_END #endif // UCONFIG_NO_IDNA + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __IDNA_H__ diff --git a/icu4c/source/common/unicode/localebuilder.h b/icu4c/source/common/unicode/localebuilder.h index 960e5980c03..cc5eec9cafb 100644 --- a/icu4c/source/common/unicode/localebuilder.h +++ b/icu4c/source/common/unicode/localebuilder.h @@ -3,10 +3,13 @@ #ifndef __LOCALEBUILDER_H__ #define __LOCALEBUILDER_H__ +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/locid.h" #include "unicode/stringpiece.h" #include "unicode/uobject.h" -#include "unicode/utypes.h" #ifndef U_HIDE_DRAFT_API @@ -289,4 +292,7 @@ private: U_NAMESPACE_END #endif // U_HIDE_DRAFT_API + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __LOCALEBUILDER_H__ diff --git a/icu4c/source/common/unicode/locdspnm.h b/icu4c/source/common/unicode/locdspnm.h index f6e778356fe..4f06f857044 100644 --- a/icu4c/source/common/unicode/locdspnm.h +++ b/icu4c/source/common/unicode/locdspnm.h @@ -12,6 +12,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Provides display names of Locale and its components. @@ -204,4 +206,6 @@ U_NAMESPACE_END #endif +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/locid.h b/icu4c/source/common/unicode/locid.h index b474a744344..8048c1ef74a 100644 --- a/icu4c/source/common/unicode/locid.h +++ b/icu4c/source/common/unicode/locid.h @@ -31,11 +31,14 @@ #ifndef LOCID_H #define LOCID_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/bytestream.h" #include "unicode/localpointer.h" #include "unicode/strenum.h" #include "unicode/stringpiece.h" -#include "unicode/utypes.h" #include "unicode/uobject.h" #include "unicode/putil.h" #include "unicode/uloc.h" @@ -1178,4 +1181,6 @@ Locale::isBogus(void) const { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/messagepattern.h b/icu4c/source/common/unicode/messagepattern.h index 9f2a86551ca..04f00a8757d 100644 --- a/icu4c/source/common/unicode/messagepattern.h +++ b/icu4c/source/common/unicode/messagepattern.h @@ -24,6 +24,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/parseerr.h" @@ -942,4 +944,6 @@ U_NAMESPACE_END #endif // !UCONFIG_NO_FORMATTING +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __MESSAGEPATTERN_H__ diff --git a/icu4c/source/common/unicode/normalizer2.h b/icu4c/source/common/unicode/normalizer2.h index 4caa0e31034..4aeb3bb3d82 100644 --- a/icu4c/source/common/unicode/normalizer2.h +++ b/icu4c/source/common/unicode/normalizer2.h @@ -26,6 +26,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_NORMALIZATION #include "unicode/stringpiece.h" @@ -771,4 +773,7 @@ private: U_NAMESPACE_END #endif // !UCONFIG_NO_NORMALIZATION + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __NORMALIZER2_H__ diff --git a/icu4c/source/common/unicode/normlzr.h b/icu4c/source/common/unicode/normlzr.h index 0141058fb00..41f10a1963e 100644 --- a/icu4c/source/common/unicode/normlzr.h +++ b/icu4c/source/common/unicode/normlzr.h @@ -13,6 +13,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Unicode Normalization @@ -807,3 +809,5 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_NORMALIZATION */ #endif // NORMLZR_H + +#endif /* U_SHOW_CPLUSPLUS_API */ diff --git a/icu4c/source/common/unicode/parsepos.h b/icu4c/source/common/unicode/parsepos.h index b63b84f2944..909d288d48d 100644 --- a/icu4c/source/common/unicode/parsepos.h +++ b/icu4c/source/common/unicode/parsepos.h @@ -19,6 +19,9 @@ #define PARSEPOS_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" @@ -229,4 +232,6 @@ ParsePosition::setErrorIndex(int32_t ei) } U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/rbbi.h b/icu4c/source/common/unicode/rbbi.h index 365ae2d3d2a..5e6b3ab209d 100644 --- a/icu4c/source/common/unicode/rbbi.h +++ b/icu4c/source/common/unicode/rbbi.h @@ -18,6 +18,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Rule Based Break Iterator @@ -696,4 +698,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/rep.h b/icu4c/source/common/unicode/rep.h index 41fdc040497..68b2e7c8965 100644 --- a/icu4c/source/common/unicode/rep.h +++ b/icu4c/source/common/unicode/rep.h @@ -16,6 +16,10 @@ #ifndef REP_H #define REP_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -260,4 +264,6 @@ Replaceable::char32At(int32_t offset) const { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/resbund.h b/icu4c/source/common/unicode/resbund.h index ad5899003b3..28940675287 100644 --- a/icu4c/source/common/unicode/resbund.h +++ b/icu4c/source/common/unicode/resbund.h @@ -49,6 +49,9 @@ #define RESBUND_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/ures.h" #include "unicode/unistr.h" @@ -489,4 +492,7 @@ private: }; U_NAMESPACE_END + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/schriter.h b/icu4c/source/common/unicode/schriter.h index 42f02691e12..b38f95d22ac 100644 --- a/icu4c/source/common/unicode/schriter.h +++ b/icu4c/source/common/unicode/schriter.h @@ -21,6 +21,9 @@ #define SCHRITER_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/chariter.h" #include "unicode/uchriter.h" @@ -186,4 +189,7 @@ protected: }; U_NAMESPACE_END + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/simpleformatter.h b/icu4c/source/common/unicode/simpleformatter.h index 3f7d93dc094..9414bca3085 100644 --- a/icu4c/source/common/unicode/simpleformatter.h +++ b/icu4c/source/common/unicode/simpleformatter.h @@ -17,6 +17,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/unistr.h" U_NAMESPACE_BEGIN @@ -333,4 +336,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __SIMPLEFORMATTER_H__ diff --git a/icu4c/source/common/unicode/std_string.h b/icu4c/source/common/unicode/std_string.h index 729c5639950..bf87230167e 100644 --- a/icu4c/source/common/unicode/std_string.h +++ b/icu4c/source/common/unicode/std_string.h @@ -27,6 +27,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + // Workaround for a libstdc++ bug before libstdc++4.6 (2011). // https://bugs.llvm.org/show_bug.cgi?id=13364 #if defined(__GLIBCXX__) @@ -34,4 +36,6 @@ namespace std { class type_info; } #endif #include +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __STD_STRING_H__ diff --git a/icu4c/source/common/unicode/strenum.h b/icu4c/source/common/unicode/strenum.h index 61d514813b9..a303c5a983a 100644 --- a/icu4c/source/common/unicode/strenum.h +++ b/icu4c/source/common/unicode/strenum.h @@ -12,6 +12,10 @@ #ifndef STRENUM_H #define STRENUM_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/unistr.h" @@ -274,5 +278,7 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + /* STRENUM_H */ #endif diff --git a/icu4c/source/common/unicode/stringpiece.h b/icu4c/source/common/unicode/stringpiece.h index b0887effa52..aded0e41698 100644 --- a/icu4c/source/common/unicode/stringpiece.h +++ b/icu4c/source/common/unicode/stringpiece.h @@ -28,6 +28,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/std_string.h" @@ -221,4 +224,6 @@ inline UBool operator!=(const StringPiece& x, const StringPiece& y) { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __STRINGPIECE_H__ diff --git a/icu4c/source/common/unicode/stringtriebuilder.h b/icu4c/source/common/unicode/stringtriebuilder.h index fe99fdb41fd..2c47dd415b1 100644 --- a/icu4c/source/common/unicode/stringtriebuilder.h +++ b/icu4c/source/common/unicode/stringtriebuilder.h @@ -18,6 +18,9 @@ #define __STRINGTRIEBUILDER_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -418,4 +421,6 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __STRINGTRIEBUILDER_H__ diff --git a/icu4c/source/common/unicode/symtable.h b/icu4c/source/common/unicode/symtable.h index 35e5f238a70..b64d877f974 100644 --- a/icu4c/source/common/unicode/symtable.h +++ b/icu4c/source/common/unicode/symtable.h @@ -13,6 +13,9 @@ #define SYMTABLE_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -111,4 +114,6 @@ public: }; U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/ucharstrie.h b/icu4c/source/common/unicode/ucharstrie.h index dfc93f6d0ba..a702758beb3 100644 --- a/icu4c/source/common/unicode/ucharstrie.h +++ b/icu4c/source/common/unicode/ucharstrie.h @@ -24,6 +24,9 @@ */ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/unistr.h" #include "unicode/uobject.h" #include "unicode/ustringtrie.h" @@ -575,4 +578,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __UCHARSTRIE_H__ diff --git a/icu4c/source/common/unicode/ucharstriebuilder.h b/icu4c/source/common/unicode/ucharstriebuilder.h index 2aa4757e52c..540dcc047fd 100644 --- a/icu4c/source/common/unicode/ucharstriebuilder.h +++ b/icu4c/source/common/unicode/ucharstriebuilder.h @@ -18,6 +18,9 @@ #define __UCHARSTRIEBUILDER_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/stringtriebuilder.h" #include "unicode/ucharstrie.h" #include "unicode/unistr.h" @@ -184,4 +187,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __UCHARSTRIEBUILDER_H__ diff --git a/icu4c/source/common/unicode/uchriter.h b/icu4c/source/common/unicode/uchriter.h index efcd263f8bc..bf7c1ce7f0b 100644 --- a/icu4c/source/common/unicode/uchriter.h +++ b/icu4c/source/common/unicode/uchriter.h @@ -11,6 +11,9 @@ #define UCHRITER_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/chariter.h" /** @@ -384,4 +387,7 @@ protected: }; U_NAMESPACE_END + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/unifilt.h b/icu4c/source/common/unicode/unifilt.h index e10527154b6..cb7b078c185 100644 --- a/icu4c/source/common/unicode/unifilt.h +++ b/icu4c/source/common/unicode/unifilt.h @@ -12,6 +12,10 @@ #ifndef UNIFILT_H #define UNIFILT_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/unifunct.h" #include "unicode/unimatch.h" @@ -119,4 +123,6 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/unifunct.h b/icu4c/source/common/unicode/unifunct.h index 1c507596861..7d31af7dafb 100644 --- a/icu4c/source/common/unicode/unifunct.h +++ b/icu4c/source/common/unicode/unifunct.h @@ -13,6 +13,9 @@ #define UNIFUNCT_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -124,4 +127,6 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/unimatch.h b/icu4c/source/common/unicode/unimatch.h index ee4326f93c1..5a192b1b427 100644 --- a/icu4c/source/common/unicode/unimatch.h +++ b/icu4c/source/common/unicode/unimatch.h @@ -17,6 +17,7 @@ * \brief C++ API: Unicode Matcher */ +#if U_SHOW_CPLUSPLUS_API U_NAMESPACE_BEGIN @@ -162,4 +163,6 @@ public: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/uniset.h b/icu4c/source/common/unicode/uniset.h index 4a94d624c7a..77fab603904 100644 --- a/icu4c/source/common/unicode/uniset.h +++ b/icu4c/source/common/unicode/uniset.h @@ -13,6 +13,10 @@ #ifndef UNICODESET_H #define UNICODESET_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/ucpmap.h" #include "unicode/unifilt.h" #include "unicode/unistr.h" @@ -1736,4 +1740,6 @@ inline int32_t UnicodeSet::spanBack(const UnicodeString &s, int32_t limit, USetS U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/unistr.h b/icu4c/source/common/unicode/unistr.h index d79168b9195..012b25f0b9f 100644 --- a/icu4c/source/common/unicode/unistr.h +++ b/icu4c/source/common/unicode/unistr.h @@ -28,8 +28,11 @@ * \brief C++ API: Unicode String */ -#include #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + +#include #include "unicode/char16ptr.h" #include "unicode/rep.h" #include "unicode/std_string.h" @@ -4748,4 +4751,6 @@ UnicodeString::reverse(int32_t start, U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/uobject.h b/icu4c/source/common/unicode/uobject.h index c2663ebff48..27b50aaa129 100644 --- a/icu4c/source/common/unicode/uobject.h +++ b/icu4c/source/common/unicode/uobject.h @@ -20,6 +20,9 @@ #define __UOBJECT_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/platform.h" /** @@ -319,4 +322,6 @@ protected: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/common/unicode/usetiter.h b/icu4c/source/common/unicode/usetiter.h index d0d99185b7c..c6396fd76c7 100644 --- a/icu4c/source/common/unicode/usetiter.h +++ b/icu4c/source/common/unicode/usetiter.h @@ -10,6 +10,9 @@ #define USETITER_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/unistr.h" @@ -317,4 +320,6 @@ inline UChar32 UnicodeSetIterator::getCodepointEnd() const { U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/alphaindex.h b/icu4c/source/i18n/unicode/alphaindex.h index 91524a1ae52..e3c68ea7cce 100644 --- a/icu4c/source/i18n/unicode/alphaindex.h +++ b/icu4c/source/i18n/unicode/alphaindex.h @@ -13,6 +13,9 @@ #define INDEXCHARS_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/locid.h" #include "unicode/unistr.h" @@ -757,4 +760,7 @@ private: U_NAMESPACE_END #endif // !UCONFIG_NO_COLLATION + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/basictz.h b/icu4c/source/i18n/unicode/basictz.h index 3541207268d..08b66ebc88f 100644 --- a/icu4c/source/i18n/unicode/basictz.h +++ b/icu4c/source/i18n/unicode/basictz.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/timezone.h" @@ -211,6 +213,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // BASICTZ_H //eof diff --git a/icu4c/source/i18n/unicode/calendar.h b/icu4c/source/i18n/unicode/calendar.h index 023cf053f25..fd86be35d08 100644 --- a/icu4c/source/i18n/unicode/calendar.h +++ b/icu4c/source/i18n/unicode/calendar.h @@ -29,6 +29,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Calendar object @@ -2529,4 +2531,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _CALENDAR diff --git a/icu4c/source/i18n/unicode/choicfmt.h b/icu4c/source/i18n/unicode/choicfmt.h index c9f0f1114f8..67a9d93f6ca 100644 --- a/icu4c/source/i18n/unicode/choicfmt.h +++ b/icu4c/source/i18n/unicode/choicfmt.h @@ -26,6 +26,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Choice Format. @@ -592,5 +594,7 @@ U_NAMESPACE_END #endif // U_HIDE_DEPRECATED_API #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // CHOICFMT_H //eof diff --git a/icu4c/source/i18n/unicode/coleitr.h b/icu4c/source/i18n/unicode/coleitr.h index f2bd2ecc621..e3ec0e01a18 100644 --- a/icu4c/source/i18n/unicode/coleitr.h +++ b/icu4c/source/i18n/unicode/coleitr.h @@ -35,6 +35,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_COLLATION #include "unicode/unistr.h" @@ -404,4 +406,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_COLLATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/coll.h b/icu4c/source/i18n/unicode/coll.h index 653434f54ca..f105bda0fa5 100644 --- a/icu4c/source/i18n/unicode/coll.h +++ b/icu4c/source/i18n/unicode/coll.h @@ -54,6 +54,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_COLLATION #include "unicode/uobject.h" @@ -1271,4 +1273,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_COLLATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/compactdecimalformat.h b/icu4c/source/i18n/unicode/compactdecimalformat.h index 9c1e9183f46..aad80702138 100644 --- a/icu4c/source/i18n/unicode/compactdecimalformat.h +++ b/icu4c/source/i18n/unicode/compactdecimalformat.h @@ -14,6 +14,9 @@ #define __COMPACT_DECIMAL_FORMAT_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Compatibility APIs for compact decimal number formatting. @@ -187,5 +190,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __COMPACT_DECIMAL_FORMAT_H__ //eof diff --git a/icu4c/source/i18n/unicode/curramt.h b/icu4c/source/i18n/unicode/curramt.h index e321df861d2..18fd3b9995c 100644 --- a/icu4c/source/i18n/unicode/curramt.h +++ b/icu4c/source/i18n/unicode/curramt.h @@ -15,6 +15,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/measure.h" @@ -129,4 +131,7 @@ inline const char16_t* CurrencyAmount::getISOCurrency() const { U_NAMESPACE_END #endif // !UCONFIG_NO_FORMATTING + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __CURRENCYAMOUNT_H__ diff --git a/icu4c/source/i18n/unicode/currpinf.h b/icu4c/source/i18n/unicode/currpinf.h index 7741c608b07..fb0b2a7dbc0 100644 --- a/icu4c/source/i18n/unicode/currpinf.h +++ b/icu4c/source/i18n/unicode/currpinf.h @@ -11,6 +11,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Currency Plural Information used by Decimal Format @@ -266,5 +268,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _CURRPINFO //eof diff --git a/icu4c/source/i18n/unicode/currunit.h b/icu4c/source/i18n/unicode/currunit.h index 408d8d359f3..f9232642093 100644 --- a/icu4c/source/i18n/unicode/currunit.h +++ b/icu4c/source/i18n/unicode/currunit.h @@ -15,6 +15,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/measunit.h" @@ -140,4 +142,7 @@ inline const char16_t* CurrencyUnit::getISOCurrency() const { U_NAMESPACE_END #endif // !UCONFIG_NO_FORMATTING + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __CURRENCYUNIT_H__ diff --git a/icu4c/source/i18n/unicode/datefmt.h b/icu4c/source/i18n/unicode/datefmt.h index 81eb8f9b525..59a0e0e28e3 100644 --- a/icu4c/source/i18n/unicode/datefmt.h +++ b/icu4c/source/i18n/unicode/datefmt.h @@ -23,6 +23,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/udat.h" @@ -953,5 +955,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _DATEFMT //eof diff --git a/icu4c/source/i18n/unicode/dcfmtsym.h b/icu4c/source/i18n/unicode/dcfmtsym.h index 55e3d8a6b3b..28ebbe58bf0 100644 --- a/icu4c/source/i18n/unicode/dcfmtsym.h +++ b/icu4c/source/i18n/unicode/dcfmtsym.h @@ -28,10 +28,12 @@ #define DCFMTSYM_H #include "unicode/utypes.h" -#include "unicode/uchar.h" + +#if U_SHOW_CPLUSPLUS_API #if !UCONFIG_NO_FORMATTING +#include "unicode/uchar.h" #include "unicode/uobject.h" #include "unicode/locid.h" #include "unicode/numsys.h" @@ -582,5 +584,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _DCFMTSYM //eof diff --git a/icu4c/source/i18n/unicode/decimfmt.h b/icu4c/source/i18n/unicode/decimfmt.h index 6b6a9399961..a637eff1c55 100644 --- a/icu4c/source/i18n/unicode/decimfmt.h +++ b/icu4c/source/i18n/unicode/decimfmt.h @@ -28,6 +28,9 @@ #define DECIMFMT_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Compatibility APIs for decimal formatting. @@ -2216,5 +2219,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _DECIMFMT //eof diff --git a/icu4c/source/i18n/unicode/dtfmtsym.h b/icu4c/source/i18n/unicode/dtfmtsym.h index fe914b461e6..c6d76fe98eb 100644 --- a/icu4c/source/i18n/unicode/dtfmtsym.h +++ b/icu4c/source/i18n/unicode/dtfmtsym.h @@ -22,6 +22,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/calendar.h" @@ -1011,5 +1013,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _DTFMTSYM //eof diff --git a/icu4c/source/i18n/unicode/dtitvfmt.h b/icu4c/source/i18n/unicode/dtitvfmt.h index 42d77d041f8..3afb9c47fc1 100644 --- a/icu4c/source/i18n/unicode/dtitvfmt.h +++ b/icu4c/source/i18n/unicode/dtitvfmt.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Format and parse date interval in a language-independent manner. @@ -1151,5 +1153,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _DTITVFMT_H__ //eof diff --git a/icu4c/source/i18n/unicode/dtitvinf.h b/icu4c/source/i18n/unicode/dtitvinf.h index a5b7f8f797f..cfa0d8e876f 100644 --- a/icu4c/source/i18n/unicode/dtitvinf.h +++ b/icu4c/source/i18n/unicode/dtitvinf.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Date/Time interval patterns for formatting date/time interval @@ -515,5 +517,7 @@ U_NAMESPACE_END #endif +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/dtptngen.h b/icu4c/source/i18n/unicode/dtptngen.h index e50c01b4e36..65a43320404 100644 --- a/icu4c/source/i18n/unicode/dtptngen.h +++ b/icu4c/source/i18n/unicode/dtptngen.h @@ -14,6 +14,10 @@ #ifndef __DTPTNGEN_H__ #define __DTPTNGEN_H__ +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/datefmt.h" #include "unicode/locid.h" #include "unicode/udat.h" @@ -587,4 +591,6 @@ private: U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/dtrule.h b/icu4c/source/i18n/unicode/dtrule.h index 07672491a67..66afdb8633d 100644 --- a/icu4c/source/i18n/unicode/dtrule.h +++ b/icu4c/source/i18n/unicode/dtrule.h @@ -11,6 +11,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Rule for specifying date and time in an year @@ -248,5 +250,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // DTRULE_H //eof diff --git a/icu4c/source/i18n/unicode/fieldpos.h b/icu4c/source/i18n/unicode/fieldpos.h index 0bcc8daa0f7..23ee38624b7 100644 --- a/icu4c/source/i18n/unicode/fieldpos.h +++ b/icu4c/source/i18n/unicode/fieldpos.h @@ -26,6 +26,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: FieldPosition identifies the fields in a formatted output. @@ -290,5 +292,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _FIELDPOS //eof diff --git a/icu4c/source/i18n/unicode/fmtable.h b/icu4c/source/i18n/unicode/fmtable.h index a06c23dc3bd..7bec4f6906e 100644 --- a/icu4c/source/i18n/unicode/fmtable.h +++ b/icu4c/source/i18n/unicode/fmtable.h @@ -19,6 +19,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Formattable is a thin wrapper for primitive types used for formatting and parsing @@ -751,5 +753,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif //_FMTABLE //eof diff --git a/icu4c/source/i18n/unicode/format.h b/icu4c/source/i18n/unicode/format.h index b05318dae7b..96883a81a2e 100644 --- a/icu4c/source/i18n/unicode/format.h +++ b/icu4c/source/i18n/unicode/format.h @@ -26,6 +26,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Base class for all formats. @@ -303,5 +305,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _FORMAT //eof diff --git a/icu4c/source/i18n/unicode/formattedvalue.h b/icu4c/source/i18n/unicode/formattedvalue.h index 60f97edd4b2..0a63bb58a08 100644 --- a/icu4c/source/i18n/unicode/formattedvalue.h +++ b/icu4c/source/i18n/unicode/formattedvalue.h @@ -5,6 +5,9 @@ #define __FORMATTEDVALUE_H__ #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #ifndef U_HIDE_DRAFT_API @@ -314,4 +317,7 @@ U_NAMESPACE_END #endif /* U_HIDE_DRAFT_API */ #endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __FORMATTEDVALUE_H__ diff --git a/icu4c/source/i18n/unicode/fpositer.h b/icu4c/source/i18n/unicode/fpositer.h index d9c8eff511b..3e8a0108f16 100644 --- a/icu4c/source/i18n/unicode/fpositer.h +++ b/icu4c/source/i18n/unicode/fpositer.h @@ -19,6 +19,9 @@ #define FPOSITER_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" /** @@ -116,4 +119,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // FPOSITER_H diff --git a/icu4c/source/i18n/unicode/gender.h b/icu4c/source/i18n/unicode/gender.h index d2773ebd051..cf7fee963e1 100644 --- a/icu4c/source/i18n/unicode/gender.h +++ b/icu4c/source/i18n/unicode/gender.h @@ -25,6 +25,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/locid.h" @@ -114,5 +116,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _GENDER //eof diff --git a/icu4c/source/i18n/unicode/gregocal.h b/icu4c/source/i18n/unicode/gregocal.h index 2b4fe1d879c..8bfb8f48986 100644 --- a/icu4c/source/i18n/unicode/gregocal.h +++ b/icu4c/source/i18n/unicode/gregocal.h @@ -28,6 +28,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/calendar.h" @@ -774,6 +776,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _GREGOCAL //eof diff --git a/icu4c/source/i18n/unicode/listformatter.h b/icu4c/source/i18n/unicode/listformatter.h index 9ce8ec8617c..430274a914c 100644 --- a/icu4c/source/i18n/unicode/listformatter.h +++ b/icu4c/source/i18n/unicode/listformatter.h @@ -21,6 +21,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #include "unicode/unistr.h" #include "unicode/locid.h" #include "unicode/formattedvalue.h" @@ -298,4 +300,6 @@ class U_I18N_API ListFormatter : public UObject{ U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __LISTFORMATTER_H__ diff --git a/icu4c/source/i18n/unicode/measfmt.h b/icu4c/source/i18n/unicode/measfmt.h index 12101d6e28b..fa962e1fb9c 100644 --- a/icu4c/source/i18n/unicode/measfmt.h +++ b/icu4c/source/i18n/unicode/measfmt.h @@ -15,6 +15,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/format.h" @@ -395,4 +397,7 @@ class U_I18N_API MeasureFormat : public Format { U_NAMESPACE_END #endif // #if !UCONFIG_NO_FORMATTING + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // #ifndef MEASUREFORMAT_H diff --git a/icu4c/source/i18n/unicode/measunit.h b/icu4c/source/i18n/unicode/measunit.h index 93d9b079496..0c049800d8c 100644 --- a/icu4c/source/i18n/unicode/measunit.h +++ b/icu4c/source/i18n/unicode/measunit.h @@ -15,6 +15,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/unistr.h" @@ -3164,4 +3166,7 @@ private: U_NAMESPACE_END #endif // !UNCONFIG_NO_FORMATTING + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __MEASUREUNIT_H__ diff --git a/icu4c/source/i18n/unicode/measure.h b/icu4c/source/i18n/unicode/measure.h index 99b7d7a1439..ea17a709881 100644 --- a/icu4c/source/i18n/unicode/measure.h +++ b/icu4c/source/i18n/unicode/measure.h @@ -15,6 +15,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: MeasureUnit object. @@ -158,4 +160,7 @@ inline const MeasureUnit& Measure::getUnit() const { U_NAMESPACE_END #endif // !UCONFIG_NO_FORMATTING + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __MEASURE_H__ diff --git a/icu4c/source/i18n/unicode/msgfmt.h b/icu4c/source/i18n/unicode/msgfmt.h index c2f0738b111..e3db8e8033d 100644 --- a/icu4c/source/i18n/unicode/msgfmt.h +++ b/icu4c/source/i18n/unicode/msgfmt.h @@ -21,6 +21,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Formats messages in a language-neutral way. @@ -1111,5 +1113,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _MSGFMT //eof diff --git a/icu4c/source/i18n/unicode/nounit.h b/icu4c/source/i18n/unicode/nounit.h index 879849b16bd..de33fbbc947 100644 --- a/icu4c/source/i18n/unicode/nounit.h +++ b/icu4c/source/i18n/unicode/nounit.h @@ -12,6 +12,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #ifndef U_HIDE_DRAFT_API @@ -106,6 +108,8 @@ U_NAMESPACE_END #endif /* U_HIDE_DRAFT_API */ #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __NOUNIT_H__ //eof // diff --git a/icu4c/source/i18n/unicode/numberformatter.h b/icu4c/source/i18n/unicode/numberformatter.h index c8c20f40181..e5b85fe3954 100644 --- a/icu4c/source/i18n/unicode/numberformatter.h +++ b/icu4c/source/i18n/unicode/numberformatter.h @@ -1,11 +1,14 @@ // © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html +#ifndef __NUMBERFORMATTER_H__ +#define __NUMBERFORMATTER_H__ + #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING -#ifndef __NUMBERFORMATTER_H__ -#define __NUMBERFORMATTER_H__ #include "unicode/appendable.h" #include "unicode/dcfmtsym.h" @@ -2631,6 +2634,9 @@ U_NAMESPACE_END #endif // U_HIDE_DRAFT_API +#endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __NUMBERFORMATTER_H__ -#endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/icu4c/source/i18n/unicode/numberrangeformatter.h b/icu4c/source/i18n/unicode/numberrangeformatter.h index a67ee72666e..c75a23f46ea 100644 --- a/icu4c/source/i18n/unicode/numberrangeformatter.h +++ b/icu4c/source/i18n/unicode/numberrangeformatter.h @@ -1,10 +1,15 @@ // © 2018 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -#if !UCONFIG_NO_FORMATTING #ifndef __NUMBERRANGEFORMATTER_H__ #define __NUMBERRANGEFORMATTER_H__ +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + +#if !UCONFIG_NO_FORMATTING + #include #include "unicode/appendable.h" #include "unicode/fieldpos.h" @@ -902,6 +907,9 @@ U_NAMESPACE_END #endif // U_HIDE_DRAFT_API +#endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __NUMBERRANGEFORMATTER_H__ -#endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/icu4c/source/i18n/unicode/numfmt.h b/icu4c/source/i18n/unicode/numfmt.h index ba2b7d1964b..c06f87b0882 100644 --- a/icu4c/source/i18n/unicode/numfmt.h +++ b/icu4c/source/i18n/unicode/numfmt.h @@ -26,6 +26,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Compatibility APIs for number formatting. @@ -1255,5 +1257,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _NUMFMT //eof diff --git a/icu4c/source/i18n/unicode/numsys.h b/icu4c/source/i18n/unicode/numsys.h index 0ced6f4cfa6..b2b16fa0d0e 100644 --- a/icu4c/source/i18n/unicode/numsys.h +++ b/icu4c/source/i18n/unicode/numsys.h @@ -20,6 +20,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: NumberingSystem object @@ -210,5 +212,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _NUMSYS //eof diff --git a/icu4c/source/i18n/unicode/plurfmt.h b/icu4c/source/i18n/unicode/plurfmt.h index cb901b0c7b5..1900b182073 100644 --- a/icu4c/source/i18n/unicode/plurfmt.h +++ b/icu4c/source/i18n/unicode/plurfmt.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: PluralFormat object @@ -601,5 +603,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _PLURFMT //eof diff --git a/icu4c/source/i18n/unicode/plurrule.h b/icu4c/source/i18n/unicode/plurrule.h index 04bf3970ba0..610f288708a 100644 --- a/icu4c/source/i18n/unicode/plurrule.h +++ b/icu4c/source/i18n/unicode/plurrule.h @@ -18,6 +18,8 @@ #ifndef PLURRULE #define PLURRULE +#if U_SHOW_CPLUSPLUS_API + #include "unicode/utypes.h" /** @@ -533,5 +535,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _PLURRULE //eof diff --git a/icu4c/source/i18n/unicode/rbnf.h b/icu4c/source/i18n/unicode/rbnf.h index d6ba523b780..de6b8ed1eb9 100644 --- a/icu4c/source/i18n/unicode/rbnf.h +++ b/icu4c/source/i18n/unicode/rbnf.h @@ -12,6 +12,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Rule Based Number Format @@ -1135,5 +1137,7 @@ U_NAMESPACE_END /* U_HAVE_RBNF */ #endif +#endif /* U_SHOW_CPLUSPLUS_API */ + /* RBNF_H */ #endif diff --git a/icu4c/source/i18n/unicode/rbtz.h b/icu4c/source/i18n/unicode/rbtz.h index 6d652f692b2..3884a978940 100644 --- a/icu4c/source/i18n/unicode/rbtz.h +++ b/icu4c/source/i18n/unicode/rbtz.h @@ -11,6 +11,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Rule based customizable time zone @@ -359,6 +361,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // RBTZ_H //eof diff --git a/icu4c/source/i18n/unicode/regex.h b/icu4c/source/i18n/unicode/regex.h index 07c5927afbf..69fb7ecd093 100644 --- a/icu4c/source/i18n/unicode/regex.h +++ b/icu4c/source/i18n/unicode/regex.h @@ -44,6 +44,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_REGULAR_EXPRESSIONS #include "unicode/uobject.h" @@ -1876,4 +1878,7 @@ private: U_NAMESPACE_END #endif // UCONFIG_NO_REGULAR_EXPRESSIONS + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/region.h b/icu4c/source/i18n/unicode/region.h index 4014025f6f2..9ec8dd45156 100644 --- a/icu4c/source/i18n/unicode/region.h +++ b/icu4c/source/i18n/unicode/region.h @@ -16,10 +16,12 @@ */ #include "unicode/utypes.h" -#include "unicode/uregion.h" + +#if U_SHOW_CPLUSPLUS_API #if !UCONFIG_NO_FORMATTING +#include "unicode/uregion.h" #include "unicode/uobject.h" #include "unicode/uniset.h" #include "unicode/unistr.h" @@ -219,6 +221,9 @@ private: U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // REGION_H //eof diff --git a/icu4c/source/i18n/unicode/reldatefmt.h b/icu4c/source/i18n/unicode/reldatefmt.h index 1e164a581a2..a316244bc6b 100644 --- a/icu4c/source/i18n/unicode/reldatefmt.h +++ b/icu4c/source/i18n/unicode/reldatefmt.h @@ -15,6 +15,9 @@ #define __RELDATEFMT_H #include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/uobject.h" #include "unicode/udisplaycontext.h" #include "unicode/ureldatefmt.h" @@ -744,4 +747,7 @@ U_NAMESPACE_END #endif /* !UCONFIG_NO_BREAK_ITERATION */ #endif /* !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif /* __RELDATEFMT_H */ diff --git a/icu4c/source/i18n/unicode/scientificnumberformatter.h b/icu4c/source/i18n/unicode/scientificnumberformatter.h index 6c34d2ce29a..cd358dc754e 100644 --- a/icu4c/source/i18n/unicode/scientificnumberformatter.h +++ b/icu4c/source/i18n/unicode/scientificnumberformatter.h @@ -11,6 +11,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING @@ -214,4 +216,7 @@ U_NAMESPACE_END #endif /* !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/search.h b/icu4c/source/i18n/unicode/search.h index 65f7f10bcc1..2a2195627dd 100644 --- a/icu4c/source/i18n/unicode/search.h +++ b/icu4c/source/i18n/unicode/search.h @@ -14,6 +14,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: SearchIterator object. @@ -573,5 +575,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_COLLATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/selfmt.h b/icu4c/source/i18n/unicode/selfmt.h index 08e9d444ee9..f30aab0258a 100755 --- a/icu4c/source/i18n/unicode/selfmt.h +++ b/icu4c/source/i18n/unicode/selfmt.h @@ -18,9 +18,12 @@ #ifndef SELFMT #define SELFMT +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/messagepattern.h" #include "unicode/numfmt.h" -#include "unicode/utypes.h" /** * \file @@ -365,5 +368,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _SELFMT //eof diff --git a/icu4c/source/i18n/unicode/simpletz.h b/icu4c/source/i18n/unicode/simpletz.h index 3ae08077e3b..34263b6a2de 100644 --- a/icu4c/source/i18n/unicode/simpletz.h +++ b/icu4c/source/i18n/unicode/simpletz.h @@ -28,6 +28,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: SimpleTimeZone is a concrete subclass of TimeZone. @@ -929,4 +931,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _SIMPLETZ diff --git a/icu4c/source/i18n/unicode/smpdtfmt.h b/icu4c/source/i18n/unicode/smpdtfmt.h index a015c5be5c8..e7299cb691a 100644 --- a/icu4c/source/i18n/unicode/smpdtfmt.h +++ b/icu4c/source/i18n/unicode/smpdtfmt.h @@ -28,6 +28,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Format and parse dates in a language-independent manner. @@ -1656,5 +1658,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // _SMPDTFMT //eof diff --git a/icu4c/source/i18n/unicode/sortkey.h b/icu4c/source/i18n/unicode/sortkey.h index 1f4246018f0..34ed7ee6921 100644 --- a/icu4c/source/i18n/unicode/sortkey.h +++ b/icu4c/source/i18n/unicode/sortkey.h @@ -25,6 +25,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Keys for comparing strings multiple times. @@ -337,4 +339,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_COLLATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/stsearch.h b/icu4c/source/i18n/unicode/stsearch.h index 57b5b321e90..410495f7a33 100644 --- a/icu4c/source/i18n/unicode/stsearch.h +++ b/icu4c/source/i18n/unicode/stsearch.h @@ -14,6 +14,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Service for searching text based on RuleBasedCollator. @@ -502,5 +504,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_COLLATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/tblcoll.h b/icu4c/source/i18n/unicode/tblcoll.h index 24ba213b41e..35adba81f47 100644 --- a/icu4c/source/i18n/unicode/tblcoll.h +++ b/icu4c/source/i18n/unicode/tblcoll.h @@ -64,6 +64,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_COLLATION #include "unicode/coll.h" @@ -874,4 +876,7 @@ private: U_NAMESPACE_END #endif // !UCONFIG_NO_COLLATION + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // TBLCOLL_H diff --git a/icu4c/source/i18n/unicode/timezone.h b/icu4c/source/i18n/unicode/timezone.h index ede0c4896df..badd26c0f80 100644 --- a/icu4c/source/i18n/unicode/timezone.h +++ b/icu4c/source/i18n/unicode/timezone.h @@ -31,6 +31,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: TimeZone object @@ -966,5 +968,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif //_TIMEZONE //eof diff --git a/icu4c/source/i18n/unicode/tmunit.h b/icu4c/source/i18n/unicode/tmunit.h index fa59f104734..2c4d9da78ee 100644 --- a/icu4c/source/i18n/unicode/tmunit.h +++ b/icu4c/source/i18n/unicode/tmunit.h @@ -16,6 +16,9 @@ * \brief C++ API: time unit object */ +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API #include "unicode/measunit.h" @@ -132,6 +135,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __TMUNIT_H__ //eof // diff --git a/icu4c/source/i18n/unicode/tmutamt.h b/icu4c/source/i18n/unicode/tmutamt.h index 274bfa6f23f..b5409965b6f 100644 --- a/icu4c/source/i18n/unicode/tmutamt.h +++ b/icu4c/source/i18n/unicode/tmutamt.h @@ -16,11 +16,15 @@ * \brief C++ API: time unit amount object. */ -#include "unicode/measure.h" -#include "unicode/tmunit.h" +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API #if !UCONFIG_NO_FORMATTING +#include "unicode/measure.h" +#include "unicode/tmunit.h" + U_NAMESPACE_BEGIN @@ -165,6 +169,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __TMUTAMT_H__ //eof // diff --git a/icu4c/source/i18n/unicode/tmutfmt.h b/icu4c/source/i18n/unicode/tmutfmt.h index 8f245859a62..b92029cc1c7 100644 --- a/icu4c/source/i18n/unicode/tmutfmt.h +++ b/icu4c/source/i18n/unicode/tmutfmt.h @@ -18,6 +18,8 @@ */ +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #ifndef U_HIDE_DEPRECATED_API @@ -244,5 +246,7 @@ U_NAMESPACE_END #endif /* U_HIDE_DEPRECATED_API */ #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // __TMUTFMT_H__ //eof diff --git a/icu4c/source/i18n/unicode/translit.h b/icu4c/source/i18n/unicode/translit.h index 6b4888145f1..fe2568d50aa 100644 --- a/icu4c/source/i18n/unicode/translit.h +++ b/icu4c/source/i18n/unicode/translit.h @@ -14,6 +14,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: Tranforms text from one format to another. @@ -1588,4 +1590,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_TRANSLITERATION */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/tzfmt.h b/icu4c/source/i18n/unicode/tzfmt.h index d2aa768b8c8..070fcd314e8 100644 --- a/icu4c/source/i18n/unicode/tzfmt.h +++ b/icu4c/source/i18n/unicode/tzfmt.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/format.h" @@ -1094,4 +1096,7 @@ private: U_NAMESPACE_END #endif /* !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/tznames.h b/icu4c/source/i18n/unicode/tznames.h index 399265d85ae..860494221df 100644 --- a/icu4c/source/i18n/unicode/tznames.h +++ b/icu4c/source/i18n/unicode/tznames.h @@ -15,6 +15,8 @@ */ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/uloc.h" @@ -411,4 +413,7 @@ public: U_NAMESPACE_END #endif + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/tzrule.h b/icu4c/source/i18n/unicode/tzrule.h index 1647fda703e..6cce299bef9 100644 --- a/icu4c/source/i18n/unicode/tzrule.h +++ b/icu4c/source/i18n/unicode/tzrule.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/uobject.h" @@ -825,6 +827,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // TZRULE_H //eof diff --git a/icu4c/source/i18n/unicode/tztrans.h b/icu4c/source/i18n/unicode/tztrans.h index a476c68c8f7..34f9a9135a9 100644 --- a/icu4c/source/i18n/unicode/tztrans.h +++ b/icu4c/source/i18n/unicode/tztrans.h @@ -16,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/uobject.h" @@ -192,6 +194,8 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // TZTRANS_H //eof diff --git a/icu4c/source/i18n/unicode/unirepl.h b/icu4c/source/i18n/unicode/unirepl.h index ddcb0ad0e8e..1ec627abcb9 100644 --- a/icu4c/source/i18n/unicode/unirepl.h +++ b/icu4c/source/i18n/unicode/unirepl.h @@ -14,6 +14,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: UnicodeReplacer @@ -96,4 +98,6 @@ class U_I18N_API UnicodeReplacer /* not : public UObject because this is an inte U_NAMESPACE_END +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/i18n/unicode/vtzone.h b/icu4c/source/i18n/unicode/vtzone.h index 18265d34150..f2400903da0 100644 --- a/icu4c/source/i18n/unicode/vtzone.h +++ b/icu4c/source/i18n/unicode/vtzone.h @@ -11,6 +11,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + /** * \file * \brief C++ API: RFC2445 VTIMEZONE support @@ -453,5 +455,7 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif // VTZONE_H //eof diff --git a/icu4c/source/io/unicode/ustream.h b/icu4c/source/io/unicode/ustream.h index c10ce6a2de5..927342cb031 100644 --- a/icu4c/source/io/unicode/ustream.h +++ b/icu4c/source/io/unicode/ustream.h @@ -17,6 +17,10 @@ #ifndef USTREAM_H #define USTREAM_H +#include "unicode/utypes.h" + +#if U_SHOW_CPLUSPLUS_API + #include "unicode/unistr.h" #if !UCONFIG_NO_CONVERSION // not available without conversion @@ -60,4 +64,6 @@ U_NAMESPACE_END /* No operator for UChar because it can conflict with wchar_t */ +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif diff --git a/icu4c/source/test/hdrtst/Makefile.in b/icu4c/source/test/hdrtst/Makefile.in index 55e833943d5..60a8e72a677 100644 --- a/icu4c/source/test/hdrtst/Makefile.in +++ b/icu4c/source/test/hdrtst/Makefile.in @@ -17,9 +17,8 @@ ## ## .. etc. Anything other than zero is an error. (except for the deprecation tests, where '1' is the correct value) ## -## -## If a header fails the C compile because it's a C++ header, add it to the -## file named 'cxxfiles.txt' in this directory. +## If a header fails the C compile test it is likely because the header is a +## C++ header and isn't properly guarded by the U_SHOW_CPLUSPLUS_API macro. ## ## If a header fails because it is deprecated, add it to the 'dfiles.txt' ## @@ -33,135 +32,84 @@ top_builddir = ../.. subdir = test/hdrtst include $(shell icu-config --incfile) -DIRS=$(prefix)/include/unicode -LDIRS=$(prefix)/include/layout -ECHO_T=@ECHO_T@ -ECHO_C=@ECHO_C@ -ECHO_N=@ECHO_N@ all: @echo Please read this Makefile for more information. @echo run \'$(MAKE) check\' to run the test "(use -k if you don't want to stop on errs)" -E_NUM=8 -E_D="[1/$(E_NUM)] Deprecated: " -E_C="[2/$(E_NUM)] C : " -E_CXX="[3/$(E_NUM)] C++: " -E_CXX_L="[4/$(E_NUM)] C++ layout: " -E_DRF="[5/$(E_NUM)] Hide Draft: " -E_DEP="[6/$(E_NUM)] Hide Deprecated: " -E_INT="[7/$(E_NUM)] Hide Internal: " -E_OBS="[8/$(E_NUM)] Hide Obsolete: " - -check: dtest ctest cpptest doclean drafttest deprtest internaltest obsoletetest -ifeq ($(MAKECMDGOALS),check) - $(MAKE) clean -else - @echo "(not cleaning automatically)" -endif - -# break dependency -doclean: - make clean - -cpptest: - @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ - echo 'void junk(){}' >> ht_$$incfile.cpp ; \ - $(COMPILE.cc) -c $(cppflags) ht_$$incfile.cpp || FAIL=1 ; \ - done ;\ - exit $$FAIL - -# layout is removed +check: dtest ctest cpptest drafttest deprtest internaltest obsoletetest -dtest: - @FAIL=0;NONE="(No deprecated headers)";for stub in `cat $(srcdir)/dfiles.txt | grep -v '^#'` ; do \ - file=unicode/$$stub ; \ - NONE="" ; \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.cpp ; \ - echo 'void junk(){}' >> ht_$$incfile.cpp ; \ - echo > ht_dep.junk ; \ - $(COMPILE.cc) -c $(cppflags) ht_$$incfile.cpp 2>&1 | sed -e 's/^.*#error[^"]*"//' | fgrep -v ht_ | tee ht_dep.junk | fgrep -v "$$incfile.h header is obsolete" ; \ - RES=$$? ; \ - echo $$RES ; \ - fgrep -q "$$incfile.h header is obsolete" ht_dep.junk || echo "** FAIL Header unicode/$$incfile.h is not obsoleted properly" ; \ - fgrep -q "$$incfile.h header is obsolete" ht_dep.junk || FAIL=1 ; \ - rm -f unicode/$$stub ; \ +headertest: + @FAIL=0;stub=ht_stub_$(NAME.headers).$(SUFFIX.headers); for file in "$(prefix)/include/unicode"/*.h ; do \ + incfile=`basename $$file` ; \ + echo "$(NAME.headers) unicode/$$incfile" ; \ + echo "#include " > $$stub ; \ + echo 'void junk(){}' >> $$stub ; \ + $(COMPILE.headers) $(cppflags) $(FLAGS.headers) $$stub || FAIL=1 ; \ + rm -f $$stub; \ done ; \ - echo "$@: $$NONE - exit status $$FAIL" ; \ exit $$FAIL -# < ht_dep.junk && ; \ - - ctest: - @echo Building test harness for header files in ../../common and ../../i18n - @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/cxxfiles.txt | tee cfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#include "'unicode/$$incfile'.h"' > ht_$$incfile.c ; \ - echo 'void junk(void);' >> ht_$$incfile.c ; \ - echo 'void junk(){}' >> ht_$$incfile.c ; \ - $(COMPILE.c) -c $(cppflags) ht_$$incfile.c || FAIL=1 ; \ - done ;\ - exit $$FAIL + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.c)" \ + SUFFIX.headers=c \ + FLAGS.headers= + +cpptest: + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.cc)" \ + SUFFIX.headers=cpp \ + FLAGS.headers= drafttest: - @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#define U_HIDE_DRAFT_API' > hd_$$incfile.cpp ; \ - echo '#include "'unicode/$$incfile'.h"' >> hd_$$incfile.cpp ; \ - echo 'void junk(void);' >> hd_$$incfile.cpp ; \ - echo 'void junk(){}' >> hd_$$incfile.cpp ; \ - $(COMPILE.cc) -c $(cppflags) hd_$$incfile.cpp ||FAIL=1 ; \ - done ;\ - exit $$FAIL + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.cc)" \ + SUFFIX.headers=cpp \ + FLAGS.headers="-DU_HIDE_DRAFT_API" deprtest: - @FAIL=0; for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#define U_HIDE_DEPRECATED_API' > hdp_$$incfile.cpp ; \ - echo '#include "'unicode/$$incfile'.h"' >> hdp_$$incfile.cpp ; \ - echo 'void junk(void);' >> hdp_$$incfile.cpp ; \ - echo 'void junk(){}' >> hdp_$$incfile.cpp ; \ - $(COMPILE.cc) -c $(cppflags) hdp_$$incfile.cpp || FAIL=1; \ - done ; \ - exit $$FAIL + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.cc)" \ + SUFFIX.headers=cpp \ + FLAGS.headers="-DU_HIDE_DEPRECATED_API" internaltest: - @FAIL=0;\ - for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#define U_HIDE_INTERNAL_API' > hin_$$incfile.cpp ; \ - echo '#include "'unicode/$$incfile'.h"' >> hin_$$incfile.cpp ; \ - echo 'void junk(void);' >> hin_$$incfile.cpp ; \ - echo 'void junk(){}' >> hin_$$incfile.cpp ; \ - $(COMPILE.cc) -c $(cppflags) hin_$$incfile.cpp || FAIL=1 ; \ - done ; \ - exit $$FAIL + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.cc)" \ + SUFFIX.headers=cpp \ + FLAGS.headers="-DU_HIDE_INTERNAL_API" obsoletetest: - @FAIL=0;for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \ - incfile=`basename $$file .h` ; \ - echo "$@ unicode/$$incfile.h" ; \ - echo '#define U_HIDE_OBSOLETE_API' > hob_$$incfile.cpp ; \ - echo '#include "'unicode/$$incfile'.h"' >> hob_$$incfile.cpp ; \ - echo 'void junk(void);' >> hob_$$incfile.cpp ; \ - echo 'void junk(){}' >> hob_$$incfile.cpp ; \ - $(COMPILE.cc) -c $(cppflags) hob_$$incfile.cpp || FAIL=1 ; \ + $(MAKE) headertest \ + NAME.headers=$@ \ + COMPILE.headers="$(COMPILE.cc)" \ + SUFFIX.headers=cpp \ + FLAGS.headers="-DU_HIDE_OBSOLETE_API" + +dtest: + @FAIL=0;NONE="(No deprecated headers)";stub=ht_stub_dtest.cpp;for incfile in `cat $(srcdir)/dfiles.txt | grep -v '^#' | sort` ; do \ + NONE= ; \ + echo "$@ unicode/$$incfile" ; \ + echo "#include " > $$stub ; \ + echo 'void junk(){}' >> $$stub ; \ + $(COMPILE.cc) $(cppflags) $$stub 2>&1 | tee $$stub.out || FAIL=1 ; \ + if ! cat $$stub.out | sed -e 's/^.*#error[^"]*"//' | grep -v ht_ | grep -v "$$incfile header is obsolete"; then \ + echo "** FAIL Header unicode/$$incfile is not obsoleted properly" ; \ + FAIL=1 ; \ + fi ; \ + rm -f $$stub*; \ done ; \ + echo "$@: $$NONE - exit status $$FAIL" ; \ exit $$FAIL clean: - -@echo cleaning.. - -@rm -f *.h *.c *.cpp *.o *.junk cfiles.txt + -@rm -f ht_* distclean: clean -@rm -f Makefile @@ -170,5 +118,4 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status -.PHONY: doclean check all cpptest dtest ctest clean distclean - +.PHONY: doclean check all headertest cpptest dtest ctest clean distclean diff --git a/icu4c/source/test/hdrtst/cxxfiles.txt b/icu4c/source/test/hdrtst/cxxfiles.txt deleted file mode 100644 index 02151debd6a..00000000000 --- a/icu4c/source/test/hdrtst/cxxfiles.txt +++ /dev/null @@ -1,138 +0,0 @@ -# Copyright (C) 2016 and later: Unicode, Inc. and others. -# License & terms of use: http://www.unicode.org/copyright.html -# Copyright (c) 2001-2016 International Business Machines -# Corporation and others. All Rights Reserved. -# Begin temporary addition. -# These are very bad "C" APIs that do not work with a C compiler and -# violate many ICU coding guidelines. These were added with ticket #5996. -# Temporarily marked as C++ for the hdrtst to pass. -# These are gone in ICU 50.1, remove -#vzone.h -#zrule.h -#ztrans.h -# End temporary addition. -# common & i18n -alphaindex.h -appendable.h -bidi.h -basictz.h -bmsearch.h -brkiter.h -bytestream.h -bytestrie.h -bytestriebuilder.h -calendar.h -caniter.h -casemap.h -char16ptr.h -chariter.h -choicfmt.h -coleitr.h -coll.h -colldata.h -compactdecimalformat.h -convert.h -cpdtrans.h -curramt.h -currunit.h -currpinf.h -datefmt.h -dbbi.h -dcfmtsym.h -decimfmt.h -dtintrv.h -dtitvinf.h -dtitvfmt.h -dtfmtsym.h -dtptngen.h -dtrule.h -edits.h -enumset.h -errorcode.h -fieldpos.h -filteredbrk.h -fmtable.h -format.h -formattedvalue.h -fpositer.h -gender.h -gregocal.h -idna.h -listformatter.h -localebuilder.h -locdspnm.h -locid.h -measfmt.h -measunit.h -measure.h -messagepattern.h -msgfmt.h -normalizer2.h -normlzr.h -nounit.h -numberformatter.h -numberrangeformatter.h -numfmt.h -numsys.h -parsepos.h -plurfmt.h -plurrule.h -rbbi.h -rbnf.h -rbtz.h -regex.h -region.h -reldatefmt.h -rep.h -resbund.h -schriter.h -scientificformathelper.h -scientificnumberformatter.h -search.h -selfmt.h -simpleformatter.h -simpletz.h -smpdtfmt.h -sortkey.h -std_string.h -strenum.h -stringtriebuilder.h -stringpiece.h -stsearch.h -symtable.h -tblcoll.h -timezone.h -tmunit.h -tmutamt.h -tmutfmt.h -translit.h -tzfmt.h -tznames.h -tzrule.h -tztrans.h -ucharstrie.h -ucharstriebuilder.h -uchriter.h -unifilt.h -unifunct.h -unimatch.h -unirepl.h -uniset.h -unistr.h -uobject.h -usetiter.h -vtzone.h -# io library -ustream.h -# layout & layoutex -LayoutEngine.h -LEFontInstance.h -LEGlyphFilter.h -LEGlyphStorage.h -LELanguages.h -LEScripts.h -LESwaps.h -# LETypes.h -- C header -# loengine.h -- C header -ParagraphLayout.h -RunArrays.h diff --git a/icu4c/source/test/hdrtst/pfiles.txt b/icu4c/source/test/hdrtst/pfiles.txt deleted file mode 100644 index 7b20c49a3e3..00000000000 --- a/icu4c/source/test/hdrtst/pfiles.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2016 and later: Unicode, Inc. and others. -# License & terms of use: http://www.unicode.org/copyright.html -# Copyright (c) 2001-2016 International Business Machines -# Corporation and others. All Rights Reserved. -# ICU 49 and later: no more platform-specific headers -- 2.40.0