Bạn cần có khả năng xử lý các đối số mẫu
template <std::string temp>
void f() {
// ...
}
f<"foo">();
f<"bar">(); // different function!?
Bây giờ một cấy ghép sẽ cần phải đưa ra một chuỗi ký tự duy nhất cho std::string
hoặc, cho vấn đề đó, bất kỳ lớp nào khác do người dùng xác định tùy ý, lưu trữ một giá trị cụ thể, ý nghĩa của nó không được triển khai. Ngoài ra, giá trị của các đối tượng lớp tùy ý không thể được tính toán tại thời điểm biên dịch.
Nó được lên kế hoạch để xem xét cho phép các loại lớp theo nghĩa đen làm các loại tham số mẫu cho post-C ++ 0x, được khởi tạo bằng các biểu thức hằng số. Chúng có thể bị xáo trộn bằng cách xử lý đệ quy các thành viên dữ liệu theo giá trị của chúng (ví dụ: đối với các lớp cơ sở, chúng ta có thể áp dụng theo chiều sâu đầu tiên, từ trái sang phải). Nhưng nó chắc chắn sẽ không hoạt động cho các lớp học tùy ý.