mẫu cấu trúc thông thường có thể được chuyên môn hóa, ví dụ:sử dụng mẫu chuyên môn
template<typename T>
struct X{};
template<>
struct X<int>{};
C++ 11 đã cho chúng tôi mát using
cú pháp mới để thể hiện mẫu typedefs:
template<typename T>
using YetAnotherVector = std::vector<T>
Có cách nào để xác định một chuyên môn mẫu cho các cấu trúc này bằng cách sử dụng các cấu trúc tương tự như các chuyên môn hóa cho các khuôn mẫu struct? Tôi đã thử các cách sau:
template<>
using YetAnotherVector<int> = AFancyIntVector;
nhưng nó mang lại lỗi biên dịch. Điều này có thể bằng cách nào đó?
AFAIK, bạn cần một lớp phụ trợ cho nó. Ẩn đi một 'struct' chuyên biệt và sau đó tạo bí danh sử dụng lớp đó. – chris
Không chắc chắn nếu tôi làm theo, có gì sai với 'typedef YetAnotherVector AFancyIntVector'? –
slaphappy
@ Mr.kbok: Sử dụng câu lệnh của bạn cùng với kết quả sử dụng trong một lỗi biên dịch "nhiều loại trong một khai báo" – gexicide