Hi Divick, I have very little experience with gcc/g++ so I can't comment on that.
As for Microsoft, since their own headers require their extensions, I'm a bit wary as to how ISO compliant their compiler really is. I haven't tried it with extensions turned off. /Marcus Divick Kishore wrote: > Hi Marcus, > Your explanation seems logical to me to if I > understand it correctly. But I thought Microsoft's compiler are more > strict about C++ standards although they don't comply too much with it. > What it really means is that most of the times they will implement a > super set of ISO standard. They generally have some extension which > would not be part of the ISO standard , but apart from extensions rest > will be more ISO complaint than say g++. > > Thanks, > Divick > > > > Marcus Lindblom wrote: >> Divick Kishore wrote: >> >>> Hi Marcus, >>> thanks for the reply. >>> >>> >>>>> Yes, the warning is totally ignorable. We've been running with it >>>>> disabled for over a year now. :) >>>>> >>> Still that does not answer why VC7 gives those errors ? From a language >>> semantics perspective what really is wrong with that line? >>> >> VC7.1 isn't very ISO C++ conformant, although it a lot better than it's >> predecessors. I'm not 100% sure but I think that extern wasn't in the >> standard when they released 7.1, hence the compiler warns that you are >> using something that's not in the standard (Or the MSVC-dev team didn't >> have time to fix it, VS71 is not exactly a thoroughly tested and >> overworked product). The warning is quite nice, but since the compiler >> has another slew of isses that are not standard which it doesn't warn >> for, this one makes little sense. >> >> The 'extern' keyword was meant to be used to define that the template >> specialization is instantiated in another compilation unit (i.e. >> cpp-file), rather than the current one, to avoid code-bloat of each .cpp >> generating code for, say, std::vector<int>. (This is reduced to one set >> of machine-code by the linker, so it only affects the size of your >> .obj-files.) >> >> So, this is all very nice in theory, but due to some issues with the >> template instantiation mechanism (I can't remember the details, but I >> think Herb Sutter wrote an article about it, search on www.gotw.ca) it >> doesn't really work as intended anyway. >> >> I think Visual 8 gives the warning: "'extern' keyword not supported." >> instead, but I'm not sure. I do know that neither VC7 nor VC8 implements >> it properly (I recall reading it in the docs) and that you still get the >> correct code (OpenSG runs fine on both VC7 and VC8), it justs take >> longer to compile and link. >> >> When I want to do something like 'extern' and get results, I usually end >> up with putting the template-source in the cpp-file and doing explicit >> instantiation there, for all types that my executable will need. This >> means two things: 1. no inlining. 2. all template functions get >> instantiated, not just the ones that are used (this can be serious since >> some of your templated class's functions might only compile with certain >> types, etc.). >> >> Perhaps the gcc guys have managed to get it to work properly (or at >> least for OpenSG's application thereof) so that would also explain the >> difference in compile speed for OpenSG on *nix vs. windows/msvc, as well >> as why extern is being used. >> >> Cheers, >> /Marcus >> >> >> Using Tomcat but need to do more? Need to support web services, security? >> Get stuff done quickly with pre-integrated technology to make your job easier >> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> Opensg-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/opensg-users >> >> > > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Opensg-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/opensg-users > Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
