помогите разобраться, правильно ли написано
template <typename T>
typename std::enable_if<!std::is_pointer<T>::value, T&>::type ZeroInit(T& data)
{
memset(&data, 0, sizeof(T));
return data;
}
template <typename T>
T* ZeroInit(T* data)
{
memset(data, 0, sizeof(T));
return data;
}