Tôi có đoạn mã sau:Không thể tham khảo một mẫu tên lồng nhau trong một tham số mẫu
template <typename Provider>
inline void use()
{
typedef Provider::Data<int> D;
}
đâu Tôi về cơ bản cố gắng sử dụng một thành viên lớp mẫu 'dữ liệu' của một số lớp 'cung cấp', áp dụng đến 'int', nhưng tôi nhận được các lỗi sau:
util.cpp:5: error: expected init-declarator before '<' token
util.cpp:5: error: expected `,' or `;' before '<' token
Tôi đang sử dụng GCC 4.3.3 trên hệ thống Solaris.
thể trùng lặp của [C++ chức năng template thành viên của lớp mẫu gọi là từ mẫu chức năng] (http://stackoverflow.com/questions/1840253/c-template -member-function-of-template-class-called-from-template-function) –
@Kirill: Tôi nghĩ cái này là duy nhất ở chỗ nó đòi hỏi cả 'typename' và' template'. (Tôi đã vật lộn một lúc với cách giải thích điều này bằng cách sử dụng cùng một mã và tôi không hài lòng.) – sbi
@ sbi, vâng, điều này không chính xác như nhau, nhưng câu hỏi rất giống nhau. –