template <class T>
struct ABC
{
typedef typename T* pT;
};
int main(){}
Các mảnh trên mã cho lỗilỗi trong mẫu mã đơn giản
expected nested-name-specifier before 'T'
expected ';' before '*' token
Điều gì là sai với mẫu mã?
template <class T>
struct ABC
{
typedef typename T* pT;
};
int main(){}
Các mảnh trên mã cho lỗilỗi trong mẫu mã đơn giản
expected nested-name-specifier before 'T'
expected ';' before '*' token
Điều gì là sai với mẫu mã?
Từ khóa typename
bị cấm trên những tên không đủ tiêu chuẩn (những tên không có trước là ::
), ngay cả khi chúng phụ thuộc.
C++ 03 [Phần 14.6/5
] nói
Từ khóa typename chỉ được áp dụng cho các tên có trình độ, nhưng những cái tên đó không cần phải phụ thuộc.
pt
phụ thuộc vào T nhưng điều đó không quan trọng (trong ngữ cảnh này).
Xóa typename
để làm cho biên dịch mã của bạn.
Điều này sẽ được sử dụng: http://pages.cs.wisc.edu/~driscoll/typename.html –