Код: Выделить всё
template
class SFRegT {
public:
void Reset() const {
*(volatile uint32_t*)mRegAddr = 0;
}
void Set(uint32_t Value) const {
*(uint32_t*)mRegAddr = Value;
}
uint32_t Get() const {
return *(volatile uint32_t*)mRegAddr;
}
uint32_t operator()() const { return Get(); }
void setBit(const uint16_t BitPos) const {
setSFRBit(mRegAddr, BitPos);
}
// and some more member
};
Код: Выделить всё
template
class SFRegT {
public:
constexpr SFReg(uintptr_t RegAddr) :
mRegAddr(RegAddr) {
}
// the same member functions as above
private:
const uintptr_t mRegAddr;
};
Подробнее здесь: https://stackoverflow.com/questions/798 ... er-is-omit
Мобильная версия