C ++模板类作为函数的参数

时间:2017-05-01 01:46:57

标签: c++ templates arduino

在MIDI.h中定义了一个类库(我不能/不应该更改):

template<class SerialPort, class _Settings = DefaultSettings>
class MidiInterface
{
      ...

我想用这个类作为参数。 问题question是重复的,但我仍然遇到编译错误。

我自己的标题类文件如下所示:

#include <MIDI.h>

class M
{
  public:
    void setup();
    void run();

  private:
    void printMessage(const MidiInterface<SerialPort, _Settings>&
          midiInterface);
};

我收到以下错误:

在sketch \ M.cpp:1:0:

中包含的文件中
M.h:10: error: 'MidiInterface' does not name a type

 void printMessage(const MidiInterface<SerialPort, _Settings>& midiInterface);

                         ^

M.h:10: error: expected ',' or '...' before '<' token

 void printMessage(const MidiInterface<SerialPort, _Settings>& midiInterface);

                                      ^

exit status 1
'MidiInterface' does not name a type

如何更改代码以便编译?

1 个答案:

答案 0 :(得分:1)

看起来this code中的MIDI.h将所有内容都放在命名空间中。如果这是您正在使用的内容,请尝试MIDI_NAMESPACE::MidiInterface<SerialPort, _Settings>