Size: a a a

2020 August 08

W

Wild_Wind in supapro.cxx
Ilia Zviagin
Это можно сделать через enum class.
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
источник

VD

Vlad Doc in supapro.cxx
Wild_Wind
Переслано от Wild_Wind
А есть в плюсах ограничения на тип?
Как это, но на плюсах.
type X is range 0 .. 5;
Z:X := 9; -- compile time error
https://godbolt.org/z/e5eGdG
Что-то вроде этого?
источник

W

Wild_Wind in supapro.cxx
Блин, пойду сделаю бинды к аде и буду звать std::terminate в случае нарушении контракта...
источник

W

Wild_Wind in supapro.cxx
       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

Ilia Zviagin in supapro.cxx
Wild_Wind
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
Ну и что же плохого?
источник

Е

Егор in supapro.cxx
Wild_Wind
Переслано от Wild_Wind
А есть в плюсах ограничения на тип?
Как это, но на плюсах.
type X is range 0 .. 5;
Z:X := 9; -- compile time error
в 20-м разве контракты не подвезли?
источник

IZ

Ilia Zviagin in supapro.cxx
Wild_Wind
ebum class number_50 : unsigned {
zero = 0;
first = 1;
second = 2;
// ещё 46 строк бойлерплейта....
fifty = 50;
};
Почему бы тебе просто не использовать unsigned, если тебе это так не нравится?
источник

W

Wild_Wind in supapro.cxx
Ilia Zviagin
Ну и что же плохого?
И правда, что такого....
Всего-лишь нужно написать кодогенератор, ибо будет нужен number_100 - да ну нафиг.
источник

Е

Егор in supapro.cxx
Wild_Wind
И правда, что такого....
Всего-лишь нужно написать кодогенератор, ибо будет нужен number_100 - да ну нафиг.
прям как тупли до с++11
источник

W

Wild_Wind in supapro.cxx
Ilia Zviagin
Почему бы тебе просто не использовать unsigned, если тебе это так не нравится?
Ну только ежели так...

https://t.me/supapro/723966
источник

W

Wild_Wind in supapro.cxx
Егор
в 20-м разве контракты не подвезли?
Нет :(
источник

IZ

Ilia Zviagin in supapro.cxx
Wild_Wind
Блин, пойду сделаю бинды к аде и буду звать std::terminate в случае нарушении контракта...
А чего ты тогда в С++ лезешь, если тебе Паскаль так в душу запал? Пиши на своём языке Ада...
источник

W

Wild_Wind in supapro.cxx
Ilia Zviagin
А чего ты тогда в С++ лезешь, если тебе Паскаль так в душу запал? Пиши на своём языке Ада...
Ну хз, наверное, потому, что плюсы мне тоже нравятся и я на них в прод пишу...
источник

IZ

Ilia Zviagin in supapro.cxx
Wild_Wind
Ну хз, наверное, потому, что плюсы мне тоже нравятся и я на них в прод пишу...
Странно, Паскаль и С++ не могут нравится одновременно...
источник

W

Wild_Wind in supapro.cxx
Ilia Zviagin
Странно, Паскаль и С++ не могут нравится одновременно...
Ада таки не Паскаль.
источник

IZ

Ilia Zviagin in supapro.cxx
Wild_Wind
Ада таки не Паскаль.
Да ладно...
😂
источник

W

Wild_Wind in supapro.cxx
Ilia Zviagin
Да ладно...
😂
:)
источник

W

Wild_Wind in supapro.cxx
constexpr throw тоже ещё не завезли, да?
источник

АВ

Александр Водянников... in supapro.cxx
Ilia Zviagin
Странно, Паскаль и С++ не могут нравится одновременно...
Зря так говоришь))
источник

IZ

Ilia Zviagin in supapro.cxx
Александр Водянников
Зря так говоришь))
Ну не зря, видишь, какие проблемы уже у человека...
источник