Có một tout cấu trúc chứa cấu trúc bên trong Tín:C++ thông qua cấu trúc bên trong như tham số
template <typename T>
struct TOut
{
struct TIn
{
bool b;
};
TIn in;
T t;
};
Làm thế nào để vượt qua một cách chính xác thiếc tại như một tham số chính thức của một số phương pháp?
class Test
{
public:
template <typename T>
static void test (const TOut<T>::TIn &i) {} //Error
};
int main()
{
TOut <double> o;
Test::test(o.in);
}
Chương trình biên dịch với các lỗi sau:
Error 4 error C2998: 'int test' : cannot be a template definition
http://stackoverflow.com/questions/7178948/problem-with-functions-accepting-inner-classes-of-template-classes – Lol4t0
@TJD 'Tin' sẽ là loại đã biết (" cụ thể ") nếu nó nơi được khai báo bên cạnh 'Tout' hoặc bên trong một lớp không phải mẫu. Tại thời điểm OP gặp lỗi, 'Tin' vẫn chưa được biết, bởi vì' TOut 'chưa được khởi tạo. BTW, thuật ngữ "bê tông" thường được sử dụng trong ngữ cảnh thừa kế (ngược lại với "trừu tượng"). –