int32_t radix = 10,
int32_t minDigits = 1);
+ /** Returns a bogus UnicodeString by value. */
+ static inline UnicodeString makeBogusString() {
+ UnicodeString result;
+ result.setToBogus();
+ return result;
+ }
+
/**
* Return true if the character is NOT printable ASCII.
*
#include "umutex.h"
#include "number_skeletons.h"
#include "number_utypes.h"
+#include "util.h"
using namespace icu;
using namespace icu::number;
}
UnicodeString FormattedNumber::toString() const {
- if (fResults == nullptr) {
- return {};
- }
- return fResults->string.toUnicodeString();
+ UErrorCode localStatus = U_ZERO_ERROR;
+ return toString(localStatus);
}
UnicodeString FormattedNumber::toString(UErrorCode& status) const {
if (U_FAILURE(status)) {
- return {};
+ return ICU_Utility::makeBogusString();
}
if (fResults == nullptr) {
status = fErrorCode;
- return {};
+ return ICU_Utility::makeBogusString();
}
return fResults->string.toUnicodeString();
}
Appendable& FormattedNumber::appendTo(Appendable& appendable) {
- if (fResults == nullptr) {
- return appendable;
- }
- appendable.appendString(fResults->string.chars(), fResults->string.length());
- return appendable;
+ UErrorCode localStatus = U_ZERO_ERROR;
+ return appendTo(appendable, localStatus);
}
Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) {
"Should fail on UnicodeString terminal method with correct error code",
U_NUMBER_ARG_OUTOFBOUNDS_ERROR,
status);
+ assertTrue(
+ "Terminal UnicodeString on error object should be bogus",
+ output.isBogus());
// CopyErrorTo
status = U_ZERO_ERROR;