/ 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 i Visual C++ V6.0
Fra : Kasper Døring


Dato : 20-02-01 13:08

Hej

Jeg har to spørgsmål vedr. brugen af Templates i Visual C++ V6.0.

1)
Kan en Template-klasse erklæres friend af en anden klasse? F.eks:

class notemplateclass1 {
friend template <class A> class templateclass1; // Dette virker ikke.
......
};


2)
Understøtter Visual C++ V6.0 ikke brugen af keywordet "export" ?

Med venlig hilsen,
Kasper Døring.




 
 
Lars Blaabjerg (20-02-2001)
Kommentar
Fra : Lars Blaabjerg


Dato : 20-02-01 13:54

"Kasper Døring" <kasper@mip.sdu.dk> wrote in message
news:96tmas$1m4k$1@news.net.uni-c.dk...
> Hej
>
> Jeg har to spørgsmål vedr. brugen af Templates i Visual C++ V6.0.
>
> 1)
> Kan en Template-klasse erklæres friend af en anden klasse? F.eks:
>
> class notemplateclass1 {
> friend template <class A> class templateclass1; // Dette virker ikke.
> .....
> };

Koden til template klasser bliver først genereret i de bliver instantieret i
koden. Dvs. Idet du kompilerer class notemplateclass1 findes der ikke nogen
fast kode for class templateclass1 idet den vil være forskellig alt afhængig
af hvad class A er. Det gør det jo ret svært for kompileren at vide hvad for
noget kode den skal generere for class notemplateclass1. Uden at have prøvet
det, kan det være at det virker hvis du specificerer class A i ovenstående
"friend" linie (jeg garanterer ingenting).

>
>
> 2)
> Understøtter Visual C++ V6.0 ikke brugen af keywordet "export" ?

jowda



Hygge
Lars
--
Remove ***nospam*** from email address




Igor V. Rafienko (20-02-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 20-02-01 14:56

* Lars Blaabjerg

> > 1)
> > Kan en Template-klasse erklæres friend af en anden klasse? F.eks:


Ja. (se under)

[snip]


> Koden til template klasser bliver først genereret i de bliver
> instantieret i koden. Dvs. Idet du kompilerer class notemplateclass1
> findes der ikke nogen fast kode for class templateclass1 idet den
> vil være forskellig alt afhængig af hvad class A er.


Hva har det med friend templates å gjøre? (dessuten, det med "finnes
ikke" kan godt være galt).


> Det gør det jo ret svært for kompileren at vide hvad for noget kode
> den skal generere for class notemplateclass1.


Hvorfor det? Friend declarations spiller _ingen_ rolle for
_kodegenerering_.


> Uden at have prøvet det, kan det være at det virker hvis du
> specificerer class A i ovenstående "friend" linie (jeg garanterer
> ingenting).


Genialt. Takk for gode råd. Prøv igjen neste gang.

Til OP:
-------

Det er bare en grunn til at du ikke får det til: feil syntaks:

class A {
template< typename T > friend class B;
};

(Standarden, 14.5.3 beskriver dette temmelig nøyaktig)

Hvis VC++ nekter å godta dette, så er problemet relatert til
hjerneskaden i VC++ og kan kureres ved å bytte kompilator.





ivr
--
Besides, meat tends to run away when possible, or fights. Either
response presents behavioral challenges too complex for any existing
robot.
      -- Stuart Wilkinson, inventor of the "gastrobot"

Kasper Døring (20-02-2001)
Kommentar
Fra : Kasper Døring


Dato : 20-02-01 15:11

Tak for det gode råd. Jeg kan nu konkludere at problemerne skyldes fejl i
compileren. Med hensyn til brugen af export keywordet kan jeg nu stadigvæk
ikke få dette til at virke.

Med venlig hilsen,
Kasper Døring.

"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjv1yste9w2.fsf@helgrind.ifi.uio.no...
> * Lars Blaabjerg
>
> > > 1)
> > > Kan en Template-klasse erklæres friend af en anden klasse? F.eks:
>
>
> Ja. (se under)
>
> [snip]
>
>
> > Koden til template klasser bliver først genereret i de bliver
> > instantieret i koden. Dvs. Idet du kompilerer class notemplateclass1
> > findes der ikke nogen fast kode for class templateclass1 idet den
> > vil være forskellig alt afhængig af hvad class A er.
>
>
> Hva har det med friend templates å gjøre? (dessuten, det med "finnes
> ikke" kan godt være galt).
>
>
> > Det gør det jo ret svært for kompileren at vide hvad for noget kode
> > den skal generere for class notemplateclass1.
>
>
> Hvorfor det? Friend declarations spiller _ingen_ rolle for
> _kodegenerering_.
>
>
> > Uden at have prøvet det, kan det være at det virker hvis du
> > specificerer class A i ovenstående "friend" linie (jeg garanterer
> > ingenting).
>
>
> Genialt. Takk for gode råd. Prøv igjen neste gang.
>
> Til OP:
> -------
>
> Det er bare en grunn til at du ikke får det til: feil syntaks:
>
> class A {
> template< typename T > friend class B;
> };
>
> (Standarden, 14.5.3 beskriver dette temmelig nøyaktig)
>
> Hvis VC++ nekter å godta dette, så er problemet relatert til
> hjerneskaden i VC++ og kan kureres ved å bytte kompilator.
>
>
>
>
>
> ivr
> --
> Besides, meat tends to run away when possible, or fights. Either
> response presents behavioral challenges too complex for any existing
> robot.
> -- Stuart Wilkinson, inventor of the "gastrobot"



Igor V. Rafienko (20-02-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 20-02-01 15:42

* Kasper Døring

> Tak for det gode råd. Jeg kan nu konkludere at problemerne skyldes
> fejl i compileren. Med hensyn til brugen af export keywordet kan jeg
> nu stadigvæk ikke få dette til at virke.


Vel, det finnes feil og det finnes feil. Meg kjent, finnes det ingen
kompilator per idag som støtter export ordentlig (alle sammen har noen
rare hacks for å få det til å funke).

Du burde få template friends til uten problemer. Det å få til export
derimot er nok litt mer eksentrisk per idag.





ivr
--
Besides, meat tends to run away when possible, or fights. Either
response presents behavioral challenges too complex for any existing
robot.
      -- Stuart Wilkinson, inventor of the "gastrobot"

Lars Blaabjerg (21-02-2001)
Kommentar
Fra : Lars Blaabjerg


Dato : 21-02-01 08:24

Tak for korrektionen, det har vi vel alle brug for en gang imellem. Nu
mangler vi bare at forbedre tonen en kende

"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjv1yste9w2.fsf@helgrind.ifi.uio.no...
> * Lars Blaabjerg
>
> > > 1)
> > > Kan en Template-klasse erklæres friend af en anden klasse? F.eks:
>
>
> Ja. (se under)
>
> [snip]
>
>
> > Koden til template klasser bliver først genereret i de bliver
> > instantieret i koden. Dvs. Idet du kompilerer class notemplateclass1
> > findes der ikke nogen fast kode for class templateclass1 idet den
> > vil være forskellig alt afhængig af hvad class A er.
>
>
> Hva har det med friend templates å gjøre? (dessuten, det med "finnes
> ikke" kan godt være galt).
>
>
> > Det gør det jo ret svært for kompileren at vide hvad for noget kode
> > den skal generere for class notemplateclass1.
>
>
> Hvorfor det? Friend declarations spiller _ingen_ rolle for
> _kodegenerering_.
>
>
> > Uden at have prøvet det, kan det være at det virker hvis du
> > specificerer class A i ovenstående "friend" linie (jeg garanterer
> > ingenting).
>
>
> Genialt. Takk for gode råd. Prøv igjen neste gang.
>
> Til OP:
> -------
>
> Det er bare en grunn til at du ikke får det til: feil syntaks:
>
> class A {
> template< typename T > friend class B;
> };
>
> (Standarden, 14.5.3 beskriver dette temmelig nøyaktig)
>
> Hvis VC++ nekter å godta dette, så er problemet relatert til
> hjerneskaden i VC++ og kan kureres ved å bytte kompilator.
>
>
>
>
>
> ivr
> --
> Besides, meat tends to run away when possible, or fights. Either
> response presents behavioral challenges too complex for any existing
> robot.
> -- Stuart Wilkinson, inventor of the "gastrobot"



Igor V. Rafienko (21-02-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 21-02-01 14:52

* Lars Blaabjerg

> Tak for korrektionen, det har vi vel alle brug for en gang imellem.
> Nu mangler vi bare at forbedre tonen en kende


Nei, vi mangler ikke det. _Du_ derimot mangler:

* ordentlig sitering
* referanser til kildene dine når du kommer med helt grunnløse
påstander

(og jeg fikk fremdeles ikke svar på spørsmålene mine).

[snip excessive quoting]





ivr
--
Besides, meat tends to run away when possible, or fights. Either
response presents behavioral challenges too complex for any existing
robot.
      -- Stuart Wilkinson, inventor of the "gastrobot"

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

Månedens bedste
Årets bedste
Sidste års bedste