charこれは、C ++ 11テンプレートのコンパイルに関して、型の特性を利用して、signed charまたはunsigned char型のパラメーターに対してのみ関数のオーバーロードを有効にするさまざまな方法についてのオープンな議論です。
満足のいくものですがstd::enable_if、std::is_sameタイプアサーション(PSを参照)の複合ロジックは、特にchar符号付きにもかかわらず、すべての一致するタイプが列挙に使用されるという点で賢くはありません。したがって、誰かが型アサーションをより容易にする可能性のある他の句または複合ロジックを指定できることを望んでいます(多分std::is_integral、std::is_arithmeticまたはstd::is_signed?)。
PS:
template <typename type>
void foo(std::enable_if<std::is_same<type, char>::value||std::is_same<type, signed char>::value||std::is_same<type, unsigned char>::value, type> x)
{
}