Вот файл, в котором я пытаюсь создать экземпляр объекта «Мелодия»:
#include <Melodie.h>
Melodie<5> m(8);
void setup()
{
}
void loop()
{
}
Вот файл «Melodie.h»:
#ifndef Melodie_H
#define Melodie_H
#include <Arduino.h>
#include "pitches.h"
template <int NB_NOTES>
class Melodie
{
public:
Melodie(int pin)
{
// Some unimportant stuff
}
void addNote(int pitch, int duration)
{
// Some unimportant stuff
}
void play()
{
// Some unimportant stuff
}
private:
char notes_[NB_NOTES];
char durations_[NB_NOTES];
int notePointer_;
int pin_;
};
#endif
Я получаю следующее сообщение об ошибке:
ошибка: ожидаемый конструктор, деструктор или преобразование типа перед ‘<знак
Зачем? Тот же код работает (за исключением специфических вещей для Arduino) работает в Visual Studio. Я думал, что WinAVR поддерживает C ++?
Я попробовал и скомпилировал ваш код (GCC) без проблем с двумя незначительными изменениями.
#include <Melodie.h>
в #include "Melodie.h"
закомментируйте следующее
//#include <Arduino.h>
//#include "pitches.h"
так как они не используются.
Других решений пока нет …