BloombergLP::bdldfp::Decimal128 is able to distinguish loss of precision (floating-point underflow) due to denormalization from other causes.
BloombergLP::bdldfp::Decimal128
Declared in <bdldfp_decimal.h>
<bdldfp_decimal.h>
static bool const has_denorm_loss = true;