Здравствуйте, so5team, Вы писали:
S>им видится и полэкрана кода, который ничего не делает, и, что еще важнее, проверки на каждом присваивании.
Тут и есть полэкрана кода. Там 12 строк, в стандартном экране их 24.
S>Конечно, заставь таких использовать основанные на шаблонах strong_typedef-ы, чтобы в программе в принципе нельзя было сложить метры с килограммами, и поднимится вой до небес о том, что программа превратилась в нечитаемое шаблонное месиво. И все это с громким битиём себя пяткой в грудь и обещаниями все-все ручками проверить.
Строгие typedef'ы можно даже и в C сделать:
typedef struct {int v;} distance;
typedef struct {int v;} weigh;
Арифметику будет делать неудобно (но не сильно хуже шаблонного месива), но метры с килограммами уже случайно не сложишь.
Но мне больше нравится, как в Go:
type int distance
type int weigh
И все, получилось два вполне полноценных целочисленных типа, которых, однако, нельзя без явного преобразования складывать между собой. Более того, к ним можно еще и методы приделать, в отличии от C++.