1Index: source/i18n/dtrule.cpp 2=================================================================== 3--- source/i18n/dtrule.cpp (revision 75185) 4+++ source/i18n/dtrule.cpp (working copy) 5@@ -5,7 +5,7 @@ 6 ******************************************************************************* 7 */ 8 9-#include <typeinfo> // for 'typeid' to work 10+#include "unicode/utypeinfo.h" // for 'typeid' to work 11 12 #include "unicode/utypes.h" 13 14Index: source/i18n/currunit.cpp 15=================================================================== 16--- source/i18n/currunit.cpp (revision 75185) 17+++ source/i18n/currunit.cpp (working copy) 18@@ -8,7 +8,7 @@ 19 * Since: ICU 3.0 20 ********************************************************************** 21 */ 22-#include <typeinfo> // for 'typeid' to work 23+#include "unicode/utypeinfo.h" // for 'typeid' to work 24 25 #include "unicode/utypes.h" 26 27Index: source/i18n/tmunit.cpp 28=================================================================== 29--- source/i18n/tmunit.cpp (revision 75185) 30+++ source/i18n/tmunit.cpp (working copy) 31@@ -5,7 +5,7 @@ 32 ******************************************************************************* 33 */ 34 35-#include <typeinfo> // for 'typeid' to work 36+#include "unicode/utypeinfo.h" // for 'typeid' to work 37 38 #include "unicode/tmunit.h" 39 40Index: source/i18n/vtzone.cpp 41=================================================================== 42--- source/i18n/vtzone.cpp (revision 75185) 43+++ source/i18n/vtzone.cpp (working copy) 44@@ -5,7 +5,7 @@ 45 ******************************************************************************* 46 */ 47 48-#include <typeinfo> // for 'typeid' to work 49+#include "unicode/utypeinfo.h" // for 'typeid' to work 50 51 #include "unicode/utypes.h" 52 53Index: source/i18n/tzrule.cpp 54=================================================================== 55--- source/i18n/tzrule.cpp (revision 75185) 56+++ source/i18n/tzrule.cpp (working copy) 57@@ -5,7 +5,7 @@ 58 ******************************************************************************* 59 */ 60 61-#include <typeinfo> // for 'typeid' to work 62+#include "unicode/utypeinfo.h" // for 'typeid' to work 63 64 #include "unicode/utypes.h" 65 66Index: source/i18n/rbnf.cpp 67=================================================================== 68--- source/i18n/rbnf.cpp (revision 75185) 69+++ source/i18n/rbnf.cpp (working copy) 70@@ -5,7 +5,7 @@ 71 ******************************************************************************* 72 */ 73 74-#include <typeinfo> // for 'typeid' to work 75+#include "unicode/utypeinfo.h" // for 'typeid' to work 76 77 #include "unicode/rbnf.h" 78 79Index: source/i18n/currfmt.cpp 80=================================================================== 81--- source/i18n/currfmt.cpp (revision 75185) 82+++ source/i18n/currfmt.cpp (working copy) 83@@ -8,7 +8,7 @@ 84 * Since: ICU 3.0 85 ********************************************************************** 86 */ 87-#include <typeinfo> // for 'typeid' to work 88+#include "unicode/utypeinfo.h" // for 'typeid' to work 89 90 #include "unicode/utypes.h" 91 92Index: source/i18n/translit.cpp 93=================================================================== 94--- source/i18n/translit.cpp (revision 75185) 95+++ source/i18n/translit.cpp (working copy) 96@@ -8,7 +8,7 @@ 97 ********************************************************************** 98 */ 99 100-#include <typeinfo> // for 'typeid' to work 101+#include "unicode/utypeinfo.h" // for 'typeid' to work 102 103 #include "unicode/utypes.h" 104 105Index: source/i18n/tmutfmt.cpp 106=================================================================== 107--- source/i18n/tmutfmt.cpp (revision 75185) 108+++ source/i18n/tmutfmt.cpp (working copy) 109@@ -5,7 +5,7 @@ 110 ******************************************************************************* 111 */ 112 113-#include <typeinfo> // for 'typeid' to work 114+#include "unicode/utypeinfo.h" // for 'typeid' to work 115 116 #include "unicode/tmutfmt.h" 117 118Index: source/i18n/ucal.cpp 119=================================================================== 120--- source/i18n/ucal.cpp (revision 75185) 121+++ source/i18n/ucal.cpp (working copy) 122@@ -5,7 +5,7 @@ 123 ******************************************************************************* 124 */ 125 126-#include <typeinfo> // for 'typeid' to work 127+#include "unicode/utypeinfo.h" // for 'typeid' to work 128 129 #include "unicode/utypes.h" 130 131Index: source/i18n/dtitvfmt.cpp 132=================================================================== 133--- source/i18n/dtitvfmt.cpp (revision 75185) 134+++ source/i18n/dtitvfmt.cpp (working copy) 135@@ -8,7 +8,7 @@ 136 ******************************************************************************* 137 */ 138 139-#include <typeinfo> // for 'typeid' to work 140+#include "unicode/utypeinfo.h" // for 'typeid' to work 141 142 #include "unicode/dtitvfmt.h" 143 144Index: source/i18n/measure.cpp 145=================================================================== 146--- source/i18n/measure.cpp (revision 75185) 147+++ source/i18n/measure.cpp (working copy) 148@@ -8,7 +8,7 @@ 149 * Since: ICU 3.0 150 ********************************************************************** 151 */ 152-#include <typeinfo> // for 'typeid' to work 153+#include "unicode/utypeinfo.h" // for 'typeid' to work 154 155 #include "unicode/utypes.h" 156 157Index: source/i18n/calendar.cpp 158=================================================================== 159--- source/i18n/calendar.cpp (revision 75185) 160+++ source/i18n/calendar.cpp (working copy) 161@@ -24,7 +24,7 @@ 162 ******************************************************************************* 163 */ 164 165-#include <typeinfo> // for 'typeid' to work 166+#include "unicode/utypeinfo.h" // for 'typeid' to work 167 168 #include "unicode/utypes.h" 169 170Index: source/i18n/selfmt.cpp 171=================================================================== 172--- source/i18n/selfmt.cpp (revision 75185) 173+++ source/i18n/selfmt.cpp (working copy) 174@@ -14,7 +14,7 @@ 175 * 11/16/09 kirtig Improved version 176 ********************************************************************/ 177 178-#include <typeinfo> // for 'typeid' to work 179+#include "unicode/utypeinfo.h" // for 'typeid' to work 180 181 #include "unicode/utypes.h" 182 #include "unicode/ustring.h" 183Index: source/i18n/timezone.cpp 184=================================================================== 185--- source/i18n/timezone.cpp (revision 75185) 186+++ source/i18n/timezone.cpp (working copy) 187@@ -35,7 +35,7 @@ 188 * available IDs code. Misc. cleanup. 189 *********************************************************************************/ 190 191-#include <typeinfo> // for 'typeid' to work 192+#include "unicode/utypeinfo.h" // for 'typeid' to work 193 194 #include "unicode/utypes.h" 195 #include "unicode/ustring.h" 196Index: source/i18n/tztrans.cpp 197=================================================================== 198--- source/i18n/tztrans.cpp (revision 75185) 199+++ source/i18n/tztrans.cpp (working copy) 200@@ -5,7 +5,7 @@ 201 ******************************************************************************* 202 */ 203 204-#include <typeinfo> // for 'typeid' to work 205+#include "unicode/utypeinfo.h" // for 'typeid' to work 206 207 #include "unicode/utypes.h" 208 209Index: source/i18n/simpletz.cpp 210=================================================================== 211--- source/i18n/simpletz.cpp (revision 75185) 212+++ source/i18n/simpletz.cpp (working copy) 213@@ -21,7 +21,7 @@ 214 ******************************************************************************** 215 */ 216 217-#include <typeinfo> // for 'typeid' to work 218+#include "unicode/utypeinfo.h" // for 'typeid' to work 219 220 #include "unicode/utypes.h" 221 222Index: source/i18n/format.cpp 223=================================================================== 224--- source/i18n/format.cpp (revision 75185) 225+++ source/i18n/format.cpp (working copy) 226@@ -19,7 +19,7 @@ 227 // This file was generated from the java source file Format.java 228 // ***************************************************************************** 229 230-#include <typeinfo> // for 'typeid' to work 231+#include "unicode/utypeinfo.h" // for 'typeid' to work 232 233 #include "unicode/utypes.h" 234 235Index: source/i18n/nfsubs.cpp 236=================================================================== 237--- source/i18n/nfsubs.cpp (revision 75185) 238+++ source/i18n/nfsubs.cpp (working copy) 239@@ -14,7 +14,7 @@ 240 */ 241 242 #include <stdio.h> 243-#include <typeinfo> // for 'typeid' to work 244+#include "unicode/utypeinfo.h" // for 'typeid' to work 245 246 #include "nfsubs.h" 247 #include "digitlst.h" 248Index: source/i18n/olsontz.cpp 249=================================================================== 250--- source/i18n/olsontz.cpp (revision 75185) 251+++ source/i18n/olsontz.cpp (working copy) 252@@ -9,7 +9,7 @@ 253 ********************************************************************** 254 */ 255 256-#include <typeinfo> // for 'typeid' to work 257+#include "unicode/utypeinfo.h" // for 'typeid' to work 258 259 #include "olsontz.h" 260 261Index: source/i18n/rbtz.cpp 262=================================================================== 263--- source/i18n/rbtz.cpp (revision 75185) 264+++ source/i18n/rbtz.cpp (working copy) 265@@ -5,7 +5,7 @@ 266 ******************************************************************************* 267 */ 268 269-#include <typeinfo> // for 'typeid' to work 270+#include "unicode/utypeinfo.h" // for 'typeid' to work 271 272 #include "unicode/utypes.h" 273 274Index: source/i18n/tblcoll.cpp 275=================================================================== 276--- source/i18n/tblcoll.cpp (revision 75185) 277+++ source/i18n/tblcoll.cpp (working copy) 278@@ -54,7 +54,7 @@ 279 * 01/29/01 synwee Modified into a C++ wrapper calling C APIs (ucol.h) 280 */ 281 282-#include <typeinfo> // for 'typeid' to work 283+#include "unicode/utypeinfo.h" // for 'typeid' to work 284 285 #include "unicode/utypes.h" 286 287Index: source/test/intltest/icusvtst.cpp 288=================================================================== 289--- source/test/intltest/icusvtst.cpp (revision 75185) 290+++ source/test/intltest/icusvtst.cpp (working copy) 291@@ -5,7 +5,7 @@ 292 ******************************************************************************* 293 */ 294 295-#include <typeinfo> // for 'typeid' to work 296+#include "unicode/utypeinfo.h" // for 'typeid' to work 297 298 #include "unicode/utypes.h" 299 300Index: source/test/intltest/uobjtest.cpp 301=================================================================== 302--- source/test/intltest/uobjtest.cpp (revision 75185) 303+++ source/test/intltest/uobjtest.cpp (working copy) 304@@ -7,7 +7,7 @@ 305 306 #include <stdio.h> 307 #include <string.h> 308-#include <typeinfo> // for 'typeid' to work 309+#include "unicode/utypeinfo.h" // for 'typeid' to work 310 311 #include "uobjtest.h" 312 #include "cmemory.h" // UAlignedMemory 313Index: source/test/intltest/citrtest.cpp 314=================================================================== 315--- source/test/intltest/citrtest.cpp (revision 75185) 316+++ source/test/intltest/citrtest.cpp (working copy) 317@@ -9,7 +9,7 @@ 318 ****************************************************************************************/ 319 320 #include <string.h> 321-#include <typeinfo> // for 'typeid' to work 322+#include "unicode/utypeinfo.h" // for 'typeid' to work 323 324 #include "unicode/chariter.h" 325 #include "unicode/ustring.h" 326Index: source/test/intltest/rbbitst.cpp 327=================================================================== 328--- source/test/intltest/rbbitst.cpp (revision 75185) 329+++ source/test/intltest/rbbitst.cpp (working copy) 330@@ -9,7 +9,7 @@ 331 * 01/12/2000 Madhu Updated for changed API and added new tests 332 ************************************************************************/ 333 334-#include <typeinfo> // for 'typeid' to work 335+#include "unicode/utypeinfo.h" // for 'typeid' to work 336 337 #include "unicode/utypes.h" 338 339Index: source/common/rbbi.cpp 340=================================================================== 341--- source/common/rbbi.cpp (revision 75185) 342+++ source/common/rbbi.cpp (working copy) 343@@ -10,7 +10,7 @@ 344 // class RuleBasedBreakIterator 345 // 346 347-#include <typeinfo> // for 'typeid' to work 348+#include "unicode/utypeinfo.h" // for 'typeid' to work 349 350 #include "unicode/utypes.h" 351 352Index: source/common/uchriter.cpp 353=================================================================== 354--- source/common/uchriter.cpp (revision 75185) 355+++ source/common/uchriter.cpp (working copy) 356@@ -5,7 +5,7 @@ 357 ****************************************************************************** 358 */ 359 360-#include <typeinfo> // for 'typeid' to work 361+#include "unicode/utypeinfo.h" // for 'typeid' to work 362 363 #include "unicode/uchriter.h" 364 #include "unicode/ustring.h" 365Index: source/common/ustrenum.cpp 366=================================================================== 367--- source/common/ustrenum.cpp (revision 75185) 368+++ source/common/ustrenum.cpp (working copy) 369@@ -8,7 +8,7 @@ 370 * Since: ICU 2.4 371 ********************************************************************** 372 */ 373-#include <typeinfo> // for 'typeid' to work 374+#include "unicode/utypeinfo.h" // for 'typeid' to work 375 376 #include "unicode/ustring.h" 377 #include "unicode/strenum.h" 378Index: source/common/schriter.cpp 379=================================================================== 380--- source/common/schriter.cpp (revision 75185) 381+++ source/common/schriter.cpp (working copy) 382@@ -13,7 +13,7 @@ 383 ****************************************************************************** 384 */ 385 386-#include <typeinfo> // for 'typeid' to work 387+#include "unicode/utypeinfo.h" // for 'typeid' to work 388 389 #include "unicode/chariter.h" 390 #include "unicode/schriter.h" 391Index: source/common/unicode/utypeinfo.h 392=================================================================== 393--- source/common/unicode/utypeinfo.h (revision 0) 394+++ source/common/unicode/utypeinfo.h (revision 75186) 395@@ -0,0 +1,12 @@ 396+#ifndef UTYPEINFO_H 397+#define UTYPEINFO_H 398+ 399+#if defined(_MSC_VER) && _HAS_EXCEPTIONS == 0 400+// Visual C++ needs the following two lines when RTTI is on with 401+// exception handling disabled. 402+#include <exception> 403+using std::exception; 404+#endif 405+#include <typeinfo> // for typeid to work. 406+ 407+#endif 408