Có cách nào để nhận loại mẫu đệ quy không? Tôi có một vùng chứa mà tôi muốn chỉ định chiến lược lưu trữ cơ bản. Tuy nhiên, khuôn mẫu bên trong phải sử dụng kiểu của khuôn mẫu bên ngoài, do đó nó tạo ra một vòng lặp trong định nghĩa kiểu - mà không thể xác định được.Loại mẫu đệ quy cho chuyển tiếp vùng chứa/tên tệp
Về những gì tôi muốn:
template<typename C>
struct inner {
C * object[16];
};
template<typename T, typename Inner>
struct container {
T value;
Inner<container> holder;
};
C++ 11 giải pháp được sử dụng tốt (mặc dù tôi vẫn còn trên gcc 4.6.3).
Có một cái gì đó gọi là "mẫu đệ quy tò mò" (CRTP)? Có lẽ nó sẽ giúp đỡ, không chắc chắn ... http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern – Jimbo
Các hành vi mới mà kiểu dữ liệu đệ quy này có thể phân biệt nó với một danh sách được liên kết là gì? – abiessu
@abiessu, sử dụng hiện tại của tôi là thực sự cho một cây radix. Mỗi nút có chỉ mục về cách truy cập nút tiếp theo và 'bên trong' là những gì xác định chiến lược cho chỉ mục đó. Tức là, khuôn mẫu cho phép nói rằng trẻ em được quản lý như thế nào, trái với một màu đỏ đen, băm hoặc chiến lược khác cố định. –