27 {
static_cast<size_t> (T{1u}) } -> convertible_to<size_t>;
28 { T{1u} + T{1u} } -> convertible_to<T>;
43 void const_method ()
const {};
45 static_assert (default_initializable<OnlyDefaultConstructibleAndMoveable>);
46 static_assert (not copyable<OnlyDefaultConstructibleAndMoveable>);
47 static_assert (move_constructible<OnlyDefaultConstructibleAndMoveable>);
48 static_assert (not equality_comparable<OnlyDefaultConstructibleAndMoveable>);
49 static_assert (not totally_ordered<OnlyDefaultConstructibleAndMoveable>);
50 static_assert (not semiregular<OnlyDefaultConstructibleAndMoveable>);
51 static_assert (not regular<OnlyDefaultConstructibleAndMoveable>);
71 [[deprecated (
"Since Stroika v3.0d10 use static_cast<size_t>")]]
size_t GetValue ()
const
75 static size_t GetTotalLiveCount ();
78 explicit operator size_t ()
const;
86 static inline size_t sTotalLiveObjects_{0};
88 static_assert (not default_initializable<OnlyCopyableMoveableAndTotallyOrdered>);
89 static_assert (copyable<OnlyCopyableMoveableAndTotallyOrdered>);
90 static_assert (move_constructible<OnlyCopyableMoveableAndTotallyOrdered>);
91 static_assert (equality_comparable<OnlyCopyableMoveableAndTotallyOrdered>);
92 static_assert (totally_ordered<OnlyCopyableMoveableAndTotallyOrdered>);
93 static_assert (not semiregular<OnlyCopyableMoveableAndTotallyOrdered>);
94 static_assert (not regular<OnlyCopyableMoveableAndTotallyOrdered>);
114 [[deprecated (
"Since Stroika v3.0d10 use static_cast<size_t>")]]
size_t GetValue ()
const
118 static size_t GetTotalLiveCount ();
120 explicit operator size_t ()
const;
126 static inline size_t sTotalLiveObjects_{0};
128 static_assert (not default_initializable<OnlyCopyableMoveable>);
129 static_assert (copyable<OnlyCopyableMoveable>);
130 static_assert (move_constructible<OnlyCopyableMoveable>);
131 static_assert (not equality_comparable<OnlyCopyableMoveable>);
132 static_assert (not totally_ordered<OnlyCopyableMoveable>);
133 static_assert (not semiregular<OnlyCopyableMoveable>);
134 static_assert (not regular<OnlyCopyableMoveable>);
144 static_assert (regular<Regular>);
150 template <IINTeroperable T>
152 bool operator() (T v1, T v2)
const
154 return static_cast<size_t> (v1) ==
static_cast<size_t> (v2);
161 template <IINTeroperable T>
163 bool operator() (T v1, T v2)
const
165 return static_cast<size_t> (v1) <
static_cast<size_t> (v2);
172 template <IINTeroperable T>
174 strong_ordering operator() (T v1, T v2)
const
176 return static_cast<size_t> (v1) <=>
static_cast<size_t> (v2);