21hi_export
class iso_3166 {
23 constexpr iso_3166(iso_3166
const&)
noexcept =
default;
24 constexpr iso_3166(iso_3166&&)
noexcept =
default;
25 constexpr iso_3166& operator=(iso_3166
const&)
noexcept =
default;
26 constexpr iso_3166& operator=(iso_3166&&)
noexcept =
default;
28 constexpr iso_3166() noexcept : _v(0) {}
30 constexpr iso_3166(uint16_t number) : _v(number)
32 hi_check(number <= 999,
"ISO-3166 number must be between 0 and 999, got {}", number);
35 constexpr iso_3166(std::string_view str);
37 constexpr iso_3166(std::in_place_t, uint16_t v) noexcept : _v(v)
42 [[nodiscard]]
constexpr uint16_t
const& intrinsic()
const noexcept
47 [[nodiscard]]
constexpr uint16_t& intrinsic()
noexcept
52 [[nodiscard]]
constexpr bool empty()
const noexcept
57 constexpr explicit operator bool()
const noexcept
62 [[nodiscard]]
constexpr uint16_t number()
const noexcept
67 [[nodiscard]]
constexpr std::string code2()
const noexcept;
68 [[nodiscard]]
constexpr std::string code3()
const noexcept;
70 [[nodiscard]]
constexpr friend std::string to_string(iso_3166
const &rhs)
noexcept
75 [[nodiscard]]
constexpr friend bool operator==(iso_3166
const& lhs, iso_3166
const& rhs)
noexcept =
default;
76 [[nodiscard]]
constexpr friend auto operator<=>(iso_3166
const& lhs, iso_3166
const& rhs)
noexcept =
default;
84 [[nodiscard]]
constexpr friend bool matches(iso_3166
const& lhs, iso_3166
const& rhs)
noexcept
86 return lhs.empty() or lhs == rhs;
constexpr friend bool matches(iso_3166 const &lhs, iso_3166 const &rhs) noexcept
Check if rhs matches with lhs.
Definition iso_3166_intf.hpp:84