Jest Tout struktura zawierająca wewnętrzną Tin strukturę:C++ przechodzą wewnętrzną strukturę jako parametr
template <typename T>
struct TOut
{
struct TIn
{
bool b;
};
TIn in;
T t;
};
Jak prawidłowo przechodzić cyny jako parametru formalnego jakiejś metody?
class Test
{
public:
template <typename T>
static void test (const TOut<T>::TIn &i) {} //Error
};
int main()
{
TOut <double> o;
Test::test(o.in);
}
Program kompiluje się z powodu następującego błędu:
Error 4 error C2998: 'int test' : cannot be a template definition
http://stackoverflow.com/questions/7178948/problem-z -funkcje-uzyskiwanie-w klasie--klasy-szablonów – Lol4t0
@ TJD 'Cyna' byłaby znana ("konkretna"), gdyby była gdzie zadeklarowany obok 'Tout' lub wewnątrz klasy innej niż szablon. W punkcie, w którym OP otrzymuje błąd, 'Tin' nie jest jeszcze znany, ponieważ' TOut 'nie jest jeszcze utworzony. BTW, termin "beton" jest zwykle używany w kontekście dziedziczenia (przeciwieństwo "abstrakcji"). –