Tôi đã tìm kiếm một thứ khác liên quan đến thông số mẫu mẫu và xảy ra khi this answer xác nhận rằng thông số mẫu của mẫu mẫu là không phải là được phép theo tiêu chuẩn.Các tham số mẫu của mẫu template có phải là phần mở rộng hoặc một phần của tiêu chuẩn không?
Tuy nhiên, đoạn mã sau biên dịch trong vang mới nhất (3.2) và GCC mới nhất (4.8):
template<template<template<typename> class> class T> struct test {};
template<template<typename> class T> struct foo {};
test<foo> bar;
Đây có phải là một phần mở rộng, hoặc là câu trả lời khác thực sự không chính xác và nó được cho phép bởi Tiêu chuẩn? Nếu không, có lý do cụ thể nào cho sự thiếu sót không?
@chris OP có thể là ảnh chụp nhanh 4.8. Tôi đã sử dụng một thời gian. – juanchopanza
Vâng, tôi có ảnh chụp nhanh từ MacPorts ... vì vậy, có lẽ không phải là svn mới nhất hoặc bất cứ điều gì như thế. – celticminstrel
nó cũng biên dịch trên gcc 4.5 trên Ideone http://ideone.com/BUAuw – TemplateRex