本当にメンバフィールドの型だけを変えたいってのなら、Boost 使うとこんな感じ?

typedef typename if_<is_integral<indexT>, hash<indexT, valueT>, tree<indexT, valueT> >::type containerT;

でもメソッドの実装ごと切り替えたいなら実装用のクラスを作ってテンプレート引数で切り替えるというのも
有りかと。まー >828 と同じだけど

template<typename valueT, typename indexT>
class MyTable : public MyTableImp<valueT, indexT, is_integral<indexT>::value> {};

template<typename valueT, typename indexT, bool b>
class MyTableImp {
// ハッシュテーブル実装
};

template<typename valueT, typename indexT>
class MyTableImp<valueT, indexT, false> {
// 二分木実装
};