LINUX.ORG.RU

История изменений

Исправление d_a, (текущая версия) :

С точки зрения по памяти стоит ровно сколько же, сколько стоит Rep[resentation] (т.е. это concrete type, в терминологии Страуструпа). С точки зрения быстродействия ... на смешанной арифметике, скажем, с килогерцами и мегагерцами, конечно будут умножения и деления для конвертации (как в UnitsCast написано). Ну, на Count() ещё накладные расходы, но её можно выпилить и заменить на иммутабельное поле const Rep Count. Главное чтобы с фундаментальными типами не смешивалось, для этого нужен Count() или Count, т.е. чтобы явно вытаскивали _безразмерное_ число.

Исходная версия d_a, :

С точки зрения по памяти стоит ровно сколько же, сколько стоит Rep[resentation] (т.е. это concrete type, в терминологии Страуструпа). С точки зрения быстродействия ... на смешанной арифметике, скажем, с килогерцами и мегагерцами, конечно будут умножения и деления для конвертации (как в UnitsCast написано). Ну, на Count() ещё накладные расходы, но её можно выпилить и заменить на иммутабельное поле const Rep Count.