Ik ben sinds een paar dagen een beetje bezig met het uitproberen van de nieuwe visual studio .net 2003. Er zijn een boel bugs gefixed, en het werkt allemaal wel redelijk, maar sommige van mijn oude stukjes code werken niet goed op de nieuwe C++ compiler. Gisteravond kreeg ik een prachtige 'Internal compiler error' op een stukje code wat met de oudere compilers wel compileert.
Na wat zoekwerk heb ik het kunnen reproduceren met het volgende stukje code:
Ben ik hier nu iets vreselijks verbodens aan het doen, of heeft ome bill (weer) een steekje laten vallen bij het bouwen van de template afhandeling?
(Ja, ik weet dat het erg lelijke code is, maar het is al oud en hoeft alleen maar te werken, geen beauty-contest te winnen
).
Na wat zoekwerk heb ik het kunnen reproduceren met het volgende stukje code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| #include <iostream> #include <tchar.h> using namespace std; template <class Etype> class tpl { public: tpl() {} ~tpl() {} static int (__cdecl *function)(Etype &arg); }; template <class Etype> int (__cdecl *tpl<Etype>::function)(Etype &arg) = NULL; class cls { public: int a; }; tpl<cls> data; int _tmain(int argc, _TCHAR* argv[]) { cout <<"done" <<endl; } |
Ben ik hier nu iets vreselijks verbodens aan het doen, of heeft ome bill (weer) een steekje laten vallen bij het bouwen van de template afhandeling?
(Ja, ik weet dat het erg lelijke code is, maar het is al oud en hoeft alleen maar te werken, geen beauty-contest te winnen