C# では、ジェネリック パラメーターとして使用できる型に制約を課すジェネリック型を定義できます。次の例は、一般的な制約の使用法を示しています。
interface IFoo
{
}
class Foo<T> where T : IFoo
{
}
class Bar : IFoo
{
}
class Simpson
{
}
class Program
{
static void Main(string[] args)
{
Foo<Bar> a = new Foo<Bar>();
Foo<Simpson> b = new Foo<Simpson>(); // error CS0309
}
}
C++ でテンプレート パラメーターに制約を課す方法はありますか。
C++0x はこれをネイティブでサポートしていますが、現在の標準 C++ について話しているのです。