こんな感じかな。boostにも:isFundamental相当があるだろうけどよく知らんのでLokiを使った。
#include <loki/TypeTraits.h>
template <typename T, bool b = Loki::TypeTraits<T>::isFundamental>class Foo{};

template <typename T>
class Foo<T, false>{
private:
typedef void (T::*func)();
};

template<typename T>
class Foo<T, true>{
private:
typedef void (*func)();
};
struct UserDefined{};
int main() {
Foo<UserDefined> fu;
Foo<int> fi;
Foo<double> fd;
// Foo<void> fv; // コンパイルエラー.:isFundamentalにvoidも含まれてそうなんだが
return 0;
}