Здравствуйте, gandjustas, Вы писали:
G>а потом с подачи товарища Волшина идею "make illegal states unrepresentable"
А как этот долбаный фанатик собирается писать банальную задачу "прибавить к позиции шахматной фигуры смещение и проверить валидность результата"? Ведь согласно его идеям позиция шахматной фигуры должна иметь тип [0..8), а смещение должно иметь тип [-7 ..7], и складывать их нельзя, и любая попытка скастить одно к другому вызовет исключение в некоторых случаях.
То есть он предлагает что-то типа
try_cast_or_throw<Position>((position as int) + (offset as int))
?
Чем его, сцуко, изначально не устраивает хранить всё в обычных интах? Пошёл он нахер со своими паттернами!
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте