ある型がクラス/構造体かどうか調べる方法はありますか?
あと、クラスのメンバ関数を列挙する方法はありますか

template<typename T> void enum_functions() {
  if (T::is_class()) {
    for (int i = 0; i < T::func_count(); ++i) {
      std::cout << T::func_name(i) << '\n';
    }
  }
}
みたいな感じで。