/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Templates
Fra : Jonas Meyer Rasmusse~


Dato : 15-01-01 01:58

Hvordan adskiller jeg erklæringen af mine template klasser fra
implementationen?

Jonas



 
 
Andreas Schou Værge (15-01-2001)
Kommentar
Fra : Andreas Schou Værge


Dato : 15-01-01 06:45

"Jonas Meyer Rasmussen" <meyer@kampsax.dtu.dk> wrote:
> Hvordan adskiller jeg erklæringen af mine template klasser fra
> implementationen?

Smider dem i en separat header, som du så inkluderer hvor den
er nødvendig.

Andreas

Jonas Meyer Rasmusse~ (15-01-2001)
Kommentar
Fra : Jonas Meyer Rasmusse~


Dato : 15-01-01 09:25

så er erklæringen stadig ved headeren...
"Andreas Schou Værge" <andreas@cs.auc.dk> wrote in message
news:r7w86.21334$W81.245326@twister.sunsite.dk...
> "Jonas Meyer Rasmussen" <meyer@kampsax.dtu.dk> wrote:
> > Hvordan adskiller jeg erklæringen af mine template klasser fra
> > implementationen?
>
> Smider dem i en separat header, som du så inkluderer hvor den
> er nødvendig.
>
> Andreas



Rasmus Paulsen (15-01-2001)
Kommentar
Fra : Rasmus Paulsen


Dato : 15-01-01 23:51

Hej!

Der er vist desvaerre ikke saa mange andre maader at goere det paa. Jeg
plejer selv, at lave en .h fil med deklarationer og en .inl fil med
definitioner. .inl inkluderer jeg saa fra .h filen.

VC++ 6.0 har endvidere problemer med member-template functions. Den kan ikke
finde ud af det, hvis man definere funktionerne uden for headeren. Det er en
known-bug, som aldrig er blevet lavet.

Hilsen
Rasmus



"Jonas Meyer Rasmussen" <meyer@kampsax.dtu.dk> wrote in message
news:93uc47$uqk$1@eising.k-net.dk...
> så er erklæringen stadig ved headeren...
> "Andreas Schou Værge" <andreas@cs.auc.dk> wrote in message
> news:r7w86.21334$W81.245326@twister.sunsite.dk...
> > "Jonas Meyer Rasmussen" <meyer@kampsax.dtu.dk> wrote:
> > > Hvordan adskiller jeg erklæringen af mine template klasser fra
> > > implementationen?
> >
> > Smider dem i en separat header, som du så inkluderer hvor den
> > er nødvendig.
> >
> > Andreas
>
>



Asger K. Alstrup Nie~ (16-01-2001)
Kommentar
Fra : Asger K. Alstrup Nie~


Dato : 16-01-01 20:17

"Rasmus Paulsen" <rasmus.r.paulsen@get2net.dk> writes:

>VC++ 6.0 har endvidere problemer med member-template functions. Den kan ikke
>finde ud af det, hvis man definere funktionerne uden for headeren. Det er en
>known-bug, som aldrig er blevet lavet.

Prøv at søge i MSDN efter explicit template instantiation eller
sådan noget lignende.
Det er muligt at adskille definitionen og implementationen af
templatede funktioner. Jeg kan ikke på stående huske om det
gælder for member-template funktioner eller ej, men siden VC++ 5
har der været en ekstra mulighed for at skille tingene ad, og
det blev bedre i VC++ 6, hvor det faktisk virker.

Mvh
Asger Alstrup

Rasmus Paulsen (05-02-2001)
Kommentar
Fra : Rasmus Paulsen


Dato : 05-02-01 10:46

Hej

Jeg tror ikke at de har loest problemet med member templates endnu...

Jeg havde en fael lyst til at spoerge Gates om hvorfor de ikke kunne lave
deres udmaerkede C++ compiler bedre i stedet for at introducere C#,SOAP,.NET
etc...

Taenk at have known-bugs og overhovedet ikke goere noget ved dem i aarevis!

Hilsen
Rasmus

Soegning i MSDN gav foelgende resultat:

BUG: C2059 Error on Out-Of-Class Definition of Member Templates

----------------------------------------------------------------------------
----
The information in this article applies to:

The C/C++ Compiler (CL.EXE), included with:
Microsoft Visual C++, 32-bit Editions, versions 5.0, 6.0

----------------------------------------------------------------------------
----


SYMPTOMS
The following error message appears if you define a member template class or
function outside the class:

error C2059: syntax error : ''template<''
error C2065: 'T' : undeclared identifier



CAUSE
The compiler does not support out-of-class definition of member template
functions and classes. Please refer to the C++ Standard, section 14.5.2, for
information on member templates.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at
the beginning of this article.



MORE INFORMATION

Steps to Reproduce Behavior
The following code example demonstrates the error:

//test.cpp
// compiler option needed: none

template<class T> class string {
public:
template<class T2> int compare(const T2&);
template<class T2> string(const string<T2>& s) {} // inline definition OK
// ...
};

template <class T> template<class T2> int string<T>::compare(const T2& s)
// error C2059 and C2065
{
// ... // Out-of-class-definition
}



Additional query words:

Keywords : kbCompiler kbCPPonly kbLangCPP kbVC kbVC500 kbVC500bug kbVC600
kbVC600bug
Version : winnt:5.0,6.0
Platform : winnt
Issue type : kbbug
Technology : kbvc


Last Reviewed: February 4, 2000



"Asger K. Alstrup Nielsen" <alstrup@diku.dk> wrote in message
news:9426mn$sor@ask.diku.dk...
> "Rasmus Paulsen" <rasmus.r.paulsen@get2net.dk> writes:
>
> >VC++ 6.0 har endvidere problemer med member-template functions. Den kan
ikke
> >finde ud af det, hvis man definere funktionerne uden for headeren. Det er
en
> >known-bug, som aldrig er blevet lavet.
>
> Prøv at søge i MSDN efter explicit template instantiation eller
> sådan noget lignende.
> Det er muligt at adskille definitionen og implementationen af
> templatede funktioner. Jeg kan ikke på stående huske om det
> gælder for member-template funktioner eller ej, men siden VC++ 5
> har der været en ekstra mulighed for at skille tingene ad, og
> det blev bedre i VC++ 6, hvor det faktisk virker.
>
> Mvh
> Asger Alstrup





Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste