Tôi đang cố gắng để typedef hoặc unordered_map hoặc std :: map tùy thuộc vào việc có sẵn các thư viện TR1 hay không. Nhưng tôi không muốn chỉ định các tham số mẫu. Từ những gì tôi đã đọc cho đến nay, typedef'ing mẫu mà không có đối số là không thể cho đến khi chính thức c + + 0x tiêu chuẩn có sẵn. Vì vậy, không ai biết một cách giải quyết thanh lịch cho điều này?Typedef một lớp mẫu mà không cần chỉ định các tham số mẫu
#ifdef _TR1
#include <unordered_map>
typedef std::tr1::unordered_map MyMap; //error C2976: too few template arguments
#else
#include <map>
typedef std::map MyMap; //error C2976: too few template arguments
#endif
Xem câu hỏi rất gần đây: http://stackoverflow.com/questions/544842/c-typedef-ing-stl và các câu trả lời được cung cấp. Mẫu typedefs không phải là lệnh C++ hợp lệ –
Benoit - Cảm ơn, đó chính xác là những gì tôi đang tìm kiếm –
Câu hỏi rất giống nhau: http://stackoverflow.com/questions/6907194/how-to-typedef-a-template-class Nó có một câu lệnh khác câu trả lời không được đề cập ở đây: "mẫu bí danh" trong C++ 11 – Jayesh