一般的なケースが定義されていない特定のテンプレートの特殊化が存在するかどうかを確認したいと思います。テンプレートの特殊化が存在するかどうかを判断する方法
は考える:
template <typename T> struct A; // general definition not defined
template <> struct A<int> {}; // specialization defined for int
私はこのような構造体を定義したいと思います:
template <typename T>
struct IsDefined
{
static const bool value = ???; // true if A<T> exist, false if it does not
};
(理想的には11 C++なし)それをする方法はありますか?あなたが不完全な型にsizeof
を適用することができないという事実使い方
おかげ
では動作しませんなぜあなたはこれを行う必要があるでしょうか?好奇心を求める。 – HSchmale
@HSchmale、完全な問題はここに記述されています:https://stackoverflow.com/questions/44237528/how-to-write-template-overload-functions-with-fallback-triggered-if-template-arg – Fabio