U_CAPI void U_EXPORT2 ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode) { if(U_FAILURE(*pErrorCode)) { return; } Calendar *cpp_cal = (Calendar *)cal; GregorianCalendar *gregocal = dynamic_cast<GregorianCalendar *>(cpp_cal); // Not if(gregocal == NULL) { // because we really want to work only with a GregorianCalendar, not with // its subclasses like BuddhistCalendar. if(typeid(*cpp_cal) != typeid(GregorianCalendar)) { *pErrorCode = U_UNSUPPORTED_ERROR; return; } gregocal->setGregorianChange(date, *pErrorCode); }
U_CAPI void U_EXPORT2 ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode) { if(U_FAILURE(*pErrorCode)) { return; } Calendar *cpp_cal = (Calendar *)cal; GregorianCalendar *gregocal = dynamic_cast<GregorianCalendar *>(cpp_cal); // Not if(gregocal == NULL) { // because we really want to work only with a GregorianCalendar, not with // its subclasses like BuddhistCalendar. if (cpp_cal == NULL) { // We normally don't check "this" pointers for NULL, but this here avoids // compiler-generated exception-throwing code in case cal == NULL. *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR; return; } if(typeid(*cpp_cal) != typeid(GregorianCalendar)) { *pErrorCode = U_UNSUPPORTED_ERROR; return; } gregocal->setGregorianChange(date, *pErrorCode); }