Có 2 lớp không phải mẫu A
, B
có một số phương pháp mẫu tĩnh.Lỗi: loại không đầy đủ được sử dụng trong thông số tên lồng nhau
Từ lớp A
phương pháp tĩnh trong B
được gọi và từ lớp B
phương pháp tĩnh từ A
được gọi. Mã nguồn chỉ mang tính minh họa (mã không thực) ...
A.h
#include "B.h"
class A
{
public:
template <class T>
void f1()
{
T var1= ...;
T var2 = B::f4(T);
}
template <class T>
T f2()
{
return ...
}
};
#include "A.h"
class B
{
public:
template <class T>
void f3()
{
T var1= ...;
T var2 = A::f2(T); //Error
}
template <class T>
T f4()
{
return ...
}
};
Tôi gặp rắc rối với g ++ biên dịch trong NetBeans. Trong quá trình biên dịch, lỗi sau xảy ra: Lỗi: loại không hoàn chỉnh A được sử dụng trong trình chỉ định tên lồng nhau, g ++.
Tôi đã cố gắng thêm các khai báo chuyển tiếp vào cả hai lớp, nhưng không có gì thành công.
Có một lỗi cũ:
http://gcc.gnu.org/ml/gcc-bugs/2005-02/msg01383.html
Và giải pháp là ...? –
Những người downvoting cần phải nêu rõ những gì họ phản đối. Vì đó là câu trả lời đúng cho câu hỏi OP. OP không yêu cầu giải thích làm thế nào để giải quyết các phụ thuộc tiêu đề tròn, những tầm thường này được giải thích trong mỗi cuốn sách. –
http://stackoverflow.com/help/how-to-answer – peetonn