Đây có phải là C++ hợp pháp không?Có thể tham số của thông số mẫu mẫu gây ra đổ bóng không?
template <typename T, template <typename T> class>
struct S { };
Clang (3.7.1) từ chối yêu cầu, phàn nàn thứ hai T
bóng đầu tiên T
. GCC dường như không quan tâm đến nó và tôi nghĩ điều đó là hợp lý. Tôi nghĩ rằng đó chỉ là số tham số quan trọng trong tham số mẫu mẫu.
- http://goo.gl/51bHVG (gcc.godbolt.org)
tại sao bạn cần sử dụng 'T' hai lần? nếu bạn muốn sử dụng 'T' trong khuôn mẫu thứ hai, bạn có thể viết' template class> ' –
@DavidHaim Nó không bắt buộc, nhưng khi tham số đầu tiên được cho là tham số thứ hai, mẫu template, nó có ý nghĩa khi sử dụng cùng một tên (hoặc, ít nhất là tương tự) cho tham số mẫu lồng nhau. Đề xuất của bạn thú vị, tôi chưa bao giờ cố gắng chỉ định tham số mặc định cho tham số mẫu mẫu. Nó hoàn thành gì so với 'mẫu lớp>'? –
nodakai
Tôi tự hỏi động lực thúc đẩy những người tìm kiếm và tiêu diệt từ khóa trong tiêu đề bài đăng là gì? Họ có lẽ không kém phần nhiệt tình trong việc thay thế 'NULL' thành' nullptr'? – nodakai