-2

我已经看到对类中模板参数列表太少问题的一些响应,但是我在头文件中遇到了类似的错误,其中声明似乎处于名称空间级别。我根本不是 C++ 人,但我想弄清楚我需要在这个文件中更正什么,以防止关于 typedef 之后的两行的以下错误:

too few template-parameter-lists

这是文件专家

#ifndef SH_AUDATA_H
#define SH_AUDATA_H

#include "BinaryIO.h"
#include "AudioData.h"

// AuMuLawAudioData
typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }

#endif // ndef SH_AUDATA_H

谢谢!

4

1 回答 1

3

你要么需要

对比两者:

template <typename T> struct X
{
    T v;

    void foo();
};

typedef X<int> SomeTypedef;

#if 0
    template<> void SomeTypedef::foo() {
        //
    }
#else
    template <typename T> void X<T>::foo() {
        //
    }
#endif


int main()
{
    SomeTypedef a;
    a.foo();
}

两种定义方法都foo可以使用(更改#if 0#if 1“选择”另一种方法)

于 2013-10-25T20:44:40.087 回答