我想请教一下关于函数模板的建议。我有一个函数可以将一些数据添加到缓冲区中。但我还需要在缓冲区中添加有关数据类型的信息。数据类型是以下枚举:
enum ParameterType
{
UINT,
FLOAT,
DOUBLE
};
我需要从这样的函数创建一个函数模板:
void SomeBuffer::append( double par )
{
appendType( DOUBLE );
memcpy( pStr + _length, &par, sizeof( double ) );
_length += sizeof( double );
appendType( DOUBLE );
}
您能否建议我如何根据参数类型从 ParameterType 为 appendType() 传递一个值。
template<class T>
void SomeBuffer::append( T par )
{
appendType( ??? );
memcpy( pStr + _length, &par, sizeof( T ) );
_length += sizeof( T );
appendType( ??? );
}
我试图通过一些宏来做到这一点,但没有成功。非常感谢您的任何建议。