Здравствуйте, Pzz, Вы писали:
S>>И после этого вы еще будете говорить про замусоревание, присущее шаблонам? Ахринеть.
Pzz>Да, буду. Потому что дополнительный код, который напишу я, будет, конечно, скучным и нудным, но абсольтно понятным и прозрачным. В отличии от.
В отличии от унылого кода, который вам придется написать на чистом Си, причем для каждого типа, в C++ вам придется написать всего лишь что-то вроде:
struct distance_tag {};
using distance = strong_typedef<int, distance_tag>;
struct weight_tag {};
using weight = strong_typedef<int, weight_tag>;
И при этом вы получите возможность писать просто d1+d2 вместо вызова функций с длинными именами. И не забываем, что в чистом Си даже пространств имен нет.
Pzz>В конце концов вы к этому и пришли, насколько я понял.
Вы представляете, в C++ можно в одном месте хранить std::chrono::seconds, в другом std::chrono::milliseconds, в третьем std::chrono::minutes и все это без проблем передавать туда, где ожидается duration.