私は、異なる場所で異なるタイプのテンプレート化が期待されるテンプレート関数を持っています。
問題は、指定された型が2つの異なる方法で別のテンプレートを生成するために特殊化されているかどうかをコンパイル時に知りたいということです。C++テンプレートは、特定の型に対して関数が多重定義されているかどうかを確認できますか?
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
私はあなたがhereのように機能existanceのためにテストすることができます知っています。
toboolが特化されているかどうかをテストする方法はありますか?
tobool()が特殊化されている場合はtrueを返し、そうでない場合はfalseを返すisbool()を生成するとします。
正しく理解できますか? :Tタイプごとに、TブールがTに特化しているかどうかを示すメタ機能が必要ですか? –
そうですね、私はTがジェネリックまたは特殊なトールを使用しているかどうかを知る必要があります。 –
コンパイル時に、その存在をチェックして、結果と何をすることができますか? –