Есть шаблонная функция, одна из перегрузок которой определена для простых типов — куда входит определенное фиксированное множество, скажем
int,unsigned int,char,unsigned char,short,unsigned short,long,unsigned long,foat,double и любые указатели.
template<class T>
void foo(T & val, typename std::enable_if< is_simple_type<T>::value>::type* = 0 )
{
}
Для всех числовых типов необходимо внутри функции получить некий константный индекс, однозначно соответствующий типу T.
Для указателей пускай будет один индекс на всех (ну или никакого — то есть -1 или что-то такое).
Вопрос — как это сделать? Возможно как-то через boost::mpl, но как?