2013-06-13 47 views
6

Tôi đang đọc qua Thiết kế C++ Hiện đại và ý nghĩ đã xảy ra với tôi rằng cấu trúc typelist có thể được thay thế bằng các mẫu variadic. Cả hai dường như dựa vào đệ quy để xử lý loại đầu tiên trong danh sách và phần còn lại của danh sách riêng biệt. Có bất cứ điều gì typelists cho phép bạn làm điều đó một mẫu variadic sẽ không?Máy đánh chữ có được thay thế hoàn toàn bằng các mẫu chữ Variad không?

Trả lời

8

Các nhà đánh máy cho phép bạn một vài điều. Ví dụ, bạn không thể có một gói luận variadic như là kết quả của một metafunction - có chỉ không có cách để thể hiện một cái gì đó như thế này:

template <typename... Args> 
struct argpack_id { 
    typedef Args result; 
}; 

Bạn có thể làm điều này với typelists.

Mặt khác, có lẽ bạn nên thực hiện các typelist chính nó như là

template <typename... Args> 
struct TypeList {}; 
Các vấn đề liên quan