Есть структура во флеше с настройками. Адрес структуры зафиксирован линкером.
Запись настроек производится однократно, в произвольном порядке.
Для облегчения записи сделал класс
Код
CFwSetting {
public:
static bool IsPresent () { ... }
static bool Write (const void * data) { ... }
static bool Compare (const void * data) { ... }
};
public:
static bool IsPresent () { ... }
static bool Write (const void * data) { ... }
static bool Compare (const void * data) { ... }
};
Теперь пытаюсь сделать его шаблонным, чтобы использовать для каждого поля:
Код
template <int Addr, int Len>
class CFwSetting_Base {
...
};
typedef CFwSetting_Base <(int)&Settings.SerialNumber, sizeof(Settings.SerialNumber)> CFwSerial;
class CFwSetting_Base {
...
};
typedef CFwSetting_Base <(int)&Settings.SerialNumber, sizeof(Settings.SerialNumber)> CFwSerial;
Проблем две:
1) оно в принципе не работает. Компилятор говорит "не знаю я адрес твоей структуры!". Если адрес вбить константой, работает. Но некрасиво...
2) некрасиво указывать название поля два раза - для адреса и для размера.