タイプをクラスに渡す必要があります。以下のコードは機能しますが、これを行うための最良の方法かどうか疑問に思いました。より良い方法はありますか?
template<typename T, typename M>
class BinaryParser
{
public:
BinaryParser(T& decoder, unsigned header_size)
: m_decoder(decoder), m_header_size(header_size) {}
virtual bool Parse() {
M message;
//do something with message
return true;
}
protected:
T& m_decoder;
unsigned m_header_size;
};
int main(int argc, char* argv[])
{
int a1, b1;
a1=1;
b1=2;
BinaryParser<int,string> bp(a1,b1);
bp.Parse();
return 0;
}