Crc в этом плане уникален, он может использоваться разной
периферией с разными моделями. Дополнительно, хардварных
калькуляторов может быть 2 или 3. Поэтому, чтобы не делать лишние
using-и, тем самым сократив описание, сделано вот так. Вот функцию IsUsed нужно сделать.
Использовать CRC_BASE в качестве шаблонного параметра также нехорошо - запихнуть вместо него по ошибке можно что угодно, нужно как-то ограничить пользователя в выборе. Это требует enum class, который ещё и уникален для разных камней.
Хорошей демонстрацией будем моя реализация драйвера GPIO, там эта проблема решена довольно радикально.