C ++:带有table参数的模板函数

时间:2014-08-16 16:26:47

标签: c++ templates

我有这些方法:

/// PRIVATE
template <class T> void Setting::saveData(___uint16 address, const T &value)
{
    T *pValue = (T*)&value;
    this->pStorage->write(address, (void *)pValue, sizeof(value));
}

/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 *pAddr)
{
    saveData(ADDR_COORDINATOR_ADDR, **XXXX**);
}

saveCoordinatorAddr()方法用于保存表定义如下:

___uint8 CoordinatorAddr[8];

那么,我该怎么写 XXXX (例如:saveData(ADDR_COORDINATOR_ADDR,pAddr);)?

谢谢你们

1 个答案:

答案 0 :(得分:1)

变化:

/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 *pAddr)
{
    saveData(ADDR_COORDINATOR_ADDR, **XXXX**);
}

要:

/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 (&pAddr)[8])
{
    saveData(ADDR_COORDINATOR_ADDR, pAddr);
}

这意味着推导出的T具有与所需尺寸相匹配的正确类型。