2010-10-16 40 views
5
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ã?

+2

Điều này sẽ được sử dụng: http://pages.cs.wisc.edu/~driscoll/typename.html –

Trả lời

9

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.

Các vấn đề liên quan