`template<typename T>
MMIOReadCodeGenerator : public MMIOReadCodeGeneratorBase, public MMIO::ReadHandlingMethodVisitor<T>
{
    public:
        using MMIOReadCodeGeneratorBase::MMIOReadCodeGeneratorBase;
        virtual void VisitConstant(T value) { LoadConstantToReg(Bits, value); }
        // etc
};`

You can make sure that the class is only used with uX types by using something like `static_assert` or `enable_if`