Làm cách nào để tôi typedef
a template class
? Một cái gì đó như:Làm thế nào để gõ một lớp mẫu?
typedef std::vector myVector; // <--- compiler error
Tôi biết trong 2 cách:
(1) #define myVector std::vector // not so good
(2) template<typename T>
struct myVector { typedef std::vector<T> type; }; // verbose
Liệu chúng ta có bất cứ điều gì tốt hơn trong C++ 0x?
Tại sao bạn muốn điều này? Trường hợp sử dụng là gì? –
Tôi đang thực hiện một cái gì đó mà tôi có một số 'lớp mẫu' tham gia. Ban đầu, tôi sẽ thực hiện nó với các lớp tiêu chuẩn sau đó, tôi muốn chuyển sang các lớp tùy chỉnh của mình. Vì vậy, tôi muốn chuyển đổi đó phải đơn giản như thay đổi một 'typedef'. – iammilind
Tôi phải đồng ý với David. Tại sao bạn muốn bí danh điều này? indirection là nguyên nhân hàng đầu cho mã không đọc được và không thể bảo trì. Tuy nhiên bạn đã đưa ra một lý do chính đáng, "Abstraction". Vấn đề với stl là API. Nó ngăn chặn tối ưu hóa cụ thể. Và giữ cùng một API và suy nghĩ rằng bạn có thể làm tốt hơn là xấu số. Nó không mất cả ngày để viết mảng phát triển của riêng bạn. chỉ cần làm điều đó và được thực hiện với nó. Hoặc chỉ sử dụng STL và tiếp tục cuộc sống của bạn. – Dan