Начиная с C ++ 17, вы можете использовать Constexpr Если :
template<typename T> void display(T& V)
{
for (int j = 0; j < V.size(); j++)
{
if constexpr (std::is_same_v<typename T::value_type, int>)
mexPrintf("\n data is %d\n", V[j]);//int
else if constexpr (std::is_same_v<typename T::value_type, double>)
mexPrintf("\n data is %g\n", V[j]);//double
else
...
}
}
До C ++ 17 вы можете предоставить вспомогательные перегрузки.
void mexPrintfHelper(int v) {
mexPrintf("\n data is %d\n", v);//int
}
void mexPrintfHelper(double v) {
mexPrintf("\n data is %g\n", v);//double
}
затем
template<typename T> void display(T& V)
{
for (int j = 0; j < V.size(); j++)
{
mexPrintfHelper(V[j]);
}
}