Arduino Ошибка при попытке создать экземпляр класса с нетипичным параметром шаблона

Вот файл, в котором я пытаюсь создать экземпляр объекта «Мелодия»:

#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 ++?

2

Решение

Я попробовал и скомпилировал ваш код (GCC) без проблем с двумя незначительными изменениями.

  1. + Изменить #include <Melodie.h> в #include "Melodie.h"
  2. закомментируйте следующее

    //#include <Arduino.h>
    
    //#include "pitches.h"

так как они не используются.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]