Я пытаюсь скомпилировать код, который компилируется отлично в Arduino IDE, в Visual Studio с поддержкой Arduino (Visual Micro). Это код проблемы:template <class T>: error: 'T' не называет тип
template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
const byte* p = (const byte*)(const void*)&value;
unsigned int i;
for (i = 0; i < sizeof(value); i++)
EEPROM.write(ee++, *p++);
return i;
}
template <class T> int EEPROM_readAnything(int ee, T& value)
{
byte* p = (byte*)(void*)&value;
unsigned int i;
for (i = 0; i < sizeof(value); i++)
*p++ = EEPROM.read(ee++);
return i;
}
Ошибка я получаю:
app.ino:43:40: error: 'T' does not name a type
:int EEPROM_writeAnything(int ee, const T& value)
app.ino:43:43: error: ISO C++ forbids declaration of 'value' with no type [-fpermissive]
Может кто-то пожалуйста, мне точку в правильном направлении?
Спасибо.
Возможный дубликат [ISO C++ запрещает объявление «что-то» без типа] (http://stackoverflow.com/questions/18670953/iso-c-forbids-declaration-of-something-with-no-type) , Просто добавьте объявление вперед: 'template значение класса;' –
paulsm4
@ paulsm4. Я все равно получаю ту же ошибку, даже если я добавляю объявление вперед. –
@Niall Вот весь код до сих пор (я разрабатываю его прямо сейчас, так не делается): http://pastebin.com/24cY69e8 Кроме того, если я прокомментирую код функции шаблона, все компилируется отлично. –