Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
b.func<int> ();
returnt geen waarde? of iig geen int?
roep ook maar wat
returnt geen waarde? of iig geen int?
roep ook maar wat
Doet iets met Cloud (MS/IBM)
Kan je het niet oplossen door van je class een template class te maken?
Zoiets... (mind syntax errors, is al lang geleden dat ik nog templates gebruikt heb en heb geen zin om m'n boek erbij te pakken.)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| template <class T>
class Blaat
{
private:
T variable;
public:
T func();
};
template<class T>
T Blaat::func()
{
return variable;
} |
Zoiets... (mind syntax errors, is al lang geleden dat ik nog templates gebruikt heb en heb geen zin om m'n boek erbij te pakken.)
https://fgheysels.github.io/
neeOp donderdag 03 januari 2002 10:56 schreef whoami het volgende:
Kan je het niet oplossen door van je class een template class te maken?
Het voorbeeld zoals ik het hier gaf is ook absoluut niet hoe ik het gebruik. Het gaat erom dat als de compiler niet kan deduceren welk type/class ie voor T moet pakken, dan moet je dat met de hand kunnen specificeren. Bij normale functies werkt het prima, maar bij classmemberfuncties gaat ie over de zeik om een of andere reden
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
je hoeft de returnwaarde niet persee af te vangen hoorOp donderdag 03 januari 2002 10:56 schreef D2k het volgende:
b.func<int> ();
returnt geen waarde? of iig geen int?
roep ook maar wat
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
maar kan je dan wel dit zeggen?Op donderdag 03 januari 2002 11:03 schreef OiSyN het volgende:
[..]
je hoeft de returnwaarde niet persee af te vangen hoorEen functie die iets returnt kun je net zo aanroepen als een functie die void returnt (niets dus)
int i = b.func<int> ();
Doet iets met Cloud (MS/IBM)
Verwijderd
Ben je nu niet gewoon een ingewikkelde manier aan het bedenken om een normale typecast uit te voeren?
Anyway... het probleem wat je hebt treedt niet op als ik je test code aan g++ voer (gcc version 2.95.2 20000220 (Debian GNU/Linux)), dus ik vermoed dat je een van de vele template bugs in VC++ bent tegen gekomen.
Dat gebeurt mij ook regelmatig... internal compiler errors eigenlijk alleen als ik wat spannends en moeilijks met templates van plan ben
Anyway... het probleem wat je hebt treedt niet op als ik je test code aan g++ voer (gcc version 2.95.2 20000220 (Debian GNU/Linux)), dus ik vermoed dat je een van de vele template bugs in VC++ bent tegen gekomen.
Dat gebeurt mij ook regelmatig... internal compiler errors eigenlijk alleen als ik wat spannends en moeilijks met templates van plan ben
oh wacht ik begreep je reactie verkeerd... ik dacht even dat je het over mijn 2e voorbeeld had 
Ja hij returnt int, want die <int> geeft juist aan wat T is bij de template declaratie (zie ook het 2e voorbeeld, daar kan ik gewoon doen int i = func<int> ();)
Ja hij returnt int, want die <int> geeft juist aan wat T is bij de template declaratie (zie ook het 2e voorbeeld, daar kan ik gewoon doen int i = func<int> ();)
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
hier wel ja, maar zoals ik al zei, dit is maar een voorbeeld, en niet hoe ik het toepasOp donderdag 03 januari 2002 11:07 schreef Qlone het volgende:
Ben je nu niet gewoon een ingewikkelde manier aan het bedenken om een normale typecast uit te voeren?
godver, dat vermoeden had ik dus alAnyway... het probleem wat je hebt treedt niet op als ik je test code aan g++ voer (gcc version 2.95.2 20000220 (Debian GNU/Linux)), dus ik vermoed dat je een van de vele template bugs in VC++ bent tegen gekomen.
Dat gebeurt mij ook regelmatig... internal compiler errors eigenlijk alleen als ik wat spannends en moeilijks met templates van plan ben
wat die internal compiler errors betreft... ik noem dit niet bepaald spannend:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Blaat
{
public:
template <class T> static void func (T)
{
}
};
int main ()
{
Blaat::func<int> (4);
return 0;
} |
maar moet je dat eens gaan compilen:
code:
1
2
3
4
5
| fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe. |
* .oisyn gaat (met waarschijnlijk valse hoop) kijken of er alweer een nieuwe MSVC++ service pack uit is
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
wederom no probs bij c++ en g++Op donderdag 03 januari 2002 11:13 schreef OiSyN het volgende:
maar moet je dat eens gaan compilen:
Doet iets met Cloud (MS/IBM)
Bekende ( Beruchte ) bug in MSVC++ 6, alle SPs.Op donderdag 03 januari 2002 10:52 schreef OiSyN het volgende:
Ik weet niet of het aan de compiler ligt of aan mezelf, maar waarom lukt dit niet:
[code]class Blaat
{
public:
template <class T> T func ();
};
Is ook de reden dat de STL van MSVC geen templated ctors heeft, zoals zou moeten. Ik geloof dat't in VC7 gefixed is maar da's uit m'n hoofd, anders is't 7.1
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Pagina: 1