#include <iostream>
#include <type_traits>
void NonTempFunct(void*const& Ptr)
{
std::cout << "Pointer Value: " << Ptr << ".\n";
}
template<typename T, typename = std::enable_if_t< std::is_pointer_v<T> >>
void TempFunct(T& Param)
{
std::cout << "Pointer found.\n";
NonTempFunct( Param );
}
template<typename T, typename = std::enable_if_t< !std::is_pointer_v<T> >, typename = void>
void TempFunct(T& Param)
{
std::cout << "Non pointer found. No op.\n";
}
int main()
{
int Value = 50;
int* pValue = &Value;
TempFunct( pValue );
return 0;
}