[vc++ stl] где в коде ошибка?

marizha



#include <iostream>
using namespace std;
template<class T> class C
{
public:
class D
{
public:
D func;
};
};
template<class T>
C<T>::D C<T>::D::func
{
D d;
return d;
};
void main
{
C<int>::D d;
d.func;
};
--> error LNK2001: unresolved external symbol "public: class C<int>::D __thiscall C<int>::D::func(void)" (??$@QAE?XZ)


тут же есть definition этой функции...
вроде бы не нравится описание типа, возвращаемого функцией, но как его задать подругому?

krishtaf



template<class T>
C<T>::typename D C<T>::typename D::func
{
typename D d;
return d;
};


ну соответственно везде где нужно

marizha

после :: нельсзя использовать typename

mirt1971



#include <iostream>
using namespace std;
template<class T> class C
{
public:
class D
{
public:
D func;
};
};
template<class T>
typename C<T>::D C<T>::D::func
{
typename C<T>::D d;
return d;
};

int main
{
C<int>::D d;
d.func;
}

krishtaf


вот что значит не иметь практики

marizha

хм в 6 не работает, а в 8 beta работает
а мне нужно в 6

margadon

Хехе, а там вообще С++ кривой...

mirt1971

6 вижак не является компилятором с++, вообще говоря... Чего ты от него хотел?
Оставить комментарий
Имя или ник:
Комментарий: