さまざまな場所でさまざまなタイプにテンプレート化されることを期待しているテンプレート関数があります。
問題は、コンパイル時に、特定のタイプが2つの異なる方法で別のテンプレートを生成するための特殊化があるかどうかを知りたいということです。
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
ここのように関数の存在をテストできることは知っています。
toboolが専門化されているかどうかをテストする方法についてのチャンスはありますか?
tobool()が特殊化されている場合はtrueを返し、そうでない場合はfalseを返すisbool()を生成したいとします。