Khi khám phá this answer Tôi phát hiện ra rằng một mẫu lấy gói tham số sẽ không được chấp nhận bởi một mẫu dự kiến mẫu có số lượng thông số cụ thể.Không phù hợp với mẫu <typename...> để tạo mẫu <typename> khiếm khuyết?
Điều này dường như với tôi rằng đó là lỗi do một mẫu có thể lấy bất kỳ số tham số nào, nó sẽ có thể ánh xạ tới một số cụ thể. Có luật sư ngôn ngữ nào có thể giải thích tại sao điều này không được phép không?
Dưới đây là một ví dụ đơn giản:
template <typename...Ts>
using pack = void;
template <template <typename> class>
using accept_template = int;
accept_template<pack> value = 0;
tôi sẽ không sử dụng nó trong kịch bản chính xác này tất nhiên. Nó sẽ được sử dụng để chuyển một khuôn mẫu tới một khuôn mẫu khác có thể sử dụng mẫu được truyền theo một cách nào đó. Trong câu trả lời của tôi mà tôi liên kết, tôi đã tuyên bố một cách giải quyết, nhưng tôi vẫn cảm thấy rằng đây là một khiếm khuyết.
Không có tiện dụng. – Adrian
@Adrian Ví dụ trong câu hỏi được chấp nhận bởi GCC 7.2 ở chế độ C++ 17, nếu bạn có tùy chọn sử dụng. – hvd
Tốt để thấy rằng điều này đã được tìm thấy như là một khiếm khuyết. :) – Adrian