Trong C# chúng ta có thể định nghĩa một kiểu generic áp đặt các ràng buộc trên các kiểu có thể được sử dụng làm tham số chung. Ví dụ sau minh họa việc sử dụng các ràng buộc chung:Ràng buộc bản mẫu 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ách nào chúng ta có thể áp đặt các ràng buộc cho các tham số mẫu trong C++ hay không.
C++ 0x có hỗ trợ gốc cho điều này nhưng tôi đang nói về tiêu chuẩn hiện tại C++.
Như Nemanja nói, Boost có một thư viện mà thực hiện một cái gì đó tương tự. Đó là một chút chi tiết hơn nếu nó đã được một tính năng ngôn ngữ thích hợp, nhưng nó hoạt động, và nó cho phép bạn thể hiện hầu hết các khó khăn. – jalf