دوستان مفهوم این کد چیست؟مفهوم کلاس رو متوجه شدم اما این رو نه.
template<class TFsmc>
class Fsmc16BitAccessMode : public FSMC_NORSRAMInitTypeDef {


protected:
volatile uint16_t *_dataAddress;
volatile uint16_t *_registerAddress;
GpioPinRef _resetPin;


public:
Fsmc16BitAccessMode(const Fsmc8080LcdTiming& timing,uint16_t registerAddressLine,const GpioPinRef& resetPin);
Fsmc16BitAccessMode(const Fsmc8080LcdTiming& readTiming,const Fsmc8080LcdTiming& writeTiming,uint16_t registerAddressLine,const GpioPinRef& resetPin);


void initialise(const Fsmc8080LcdTiming& readTiming,const Fsmc8080LcdTiming& writeTiming,uint16_t registerAddressLine);
void initialiseTiming(const Fsmc8080LcdTiming& readTiming,const Fsmc8080LcdTiming& writeTiming);


void enable(bool enable);
void reset();


void writeCommand(uint16_t command) const;
void writeCommand(uint16_t command,uint16_t parameter) const;
void writeData(uint16_t value) const;
void writeDataAgain(uint16_t value) const;
void writeMultiData(uint32_t howMuch,uint16_t value) const;
uint16_t readData() const;


volatile uint16_t *getDataAddress() const;
void rawTransfer(const void *buffer,uint32_t numWords) const;
static void getDmaTransferSizes(uint32_t& peripheralsize,uint32_t& memsize);
};