14 return std::unexpected(
"money scale factor is invalid");
16 return std::unexpected(
"money value overflows while applying retail currency scale");
18 return std::unexpected(
"money value underflows while applying retail currency scale");
28 result += std::to_string(
value);
34 std::expected<std::string, std::string>
format(
48 switch (monetarySystem)
50 case 0:
prefix =
"\xC2\xA3 ";
break;
53 case 3:
factor = 100;
break;
61 case 11:
prefix =
"$ ";
break;
62 case 12:
prefix =
"\xE2\x82\xAC ";
break;
63 case 13:
prefix =
"$ ";
break;
65 return std::unexpected(
"monetary system is outside retail 0..13 range");
69 if (!
value)
return std::unexpected(
value.error());