Я хотел бы попросить вас обратиться к шаблону функции. У меня есть функция, которая добавляет некоторые данные в буфер. Но мне нужно также добавить информацию о типе данных в буфер. Тип данных является следующее перечисление:Определение типа в шаблоне функции
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(???);
}
Я попытался сделать это с помощью некоторых макрокоманд, но безуспешно. Большое спасибо за любые советы.
Предупреждение. Сериализация объектов с помощью функции 'memcpy()' вызовет у вас проблемы, если машина, которая читает буфер, имеет другую конечность, чем машина, которая пишет буфер. –