W
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
Size: a a a
W
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
VD
type X is range 0 .. 5;
Z:X := 9; -- compile time error
W
W
template <std::size_t size>
struct my_number {
public:
my_number(std::size_t number) {
#ifndef NDEBUG
static_assert(number > size, "number overflow!");
#endif
if (number > size) {
throw std::runtime_error("number overflow!");
}
}
private:
std::size_t data;
};
IZ
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
Е
IZ
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
W
Е
W
W
IZ
W
IZ
W
IZ
W
W
constexpr throw
тоже ещё не завезли, да?АВ
IZ