Why not create a factory function which creates the object and then calls ResetVariables() on it before returning it?



template <typename DeviceInfo>
DeviceInfo *CreateDeviceInfo()
{
...