помогите разобраться, правильно ли написано
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;
}



