Article View: be.comp.programming
Article #11014Re: oproep aan de programmeurs:wat moet ik kiezen ?
From: Serve La
Date: Mon, 18 Feb 2002 08:07
Date: Mon, 18 Feb 2002 08:07
83 lines
5255 bytes
5255 bytes
"Sjoerd Schreuder" <sa_schreuder@wanadoo.nl> wrote in message news:3C7047EC.EC6753E0@wanadoo.nl... > Pieter Philippaerts wrote: > > Ik weet niet zeker of dat voor IL ook zo is. IL heeft voor zover ik weet ongeveer > > alles wat x86 ook heeft en ik zie dus geen probleem om C++ te laten compilen > > naar IL (after all, het compiled al naar zoveel verschillende instructie > > sets). > > Ik ben eens wat gaan zoeken in google en wat gaan lezen. Hopelijk krijgen > we daardoor een discussie op grond van feiten in plaats van > "gevoelens", "vermoedens", en "90% zeker". > > Samenvatting: > * destructors en/of stack-based variabelen hebben een andere semantiek > dan in C++ voorgeschreven is. Daarmee gooi je een belangrijk techniek > in C++ (bekend onder de gekke naam RAII) overboord. Zonder RAII zou > ik een stuk minder productief in C++ zijn. Je bedoelt dat een destructor in C# pas aangeroepen wordt als de GC het tijd vindt om hem echt weg te gooien ipv als ie z'n scope verliest? > * RTTI (RunTime Type Information) van IL is anders dan die van C++, > dus je kunt de C++ RTTI niet gebruiken. RTTI van IL is uitgebreider, dus dan is die van C++ makkelijker te implementeren > * geen non-public inheritance in .NET. Jammer, want dat heeft toch > echt wel toepassingen. da's een goeie inderdaad. Maar dan mag jij me es uitleggen wat je kunt uitdrukken met protected inheritance > * const (en volatile) worden niet ondersteund. En "const-correctness" > is in C++ toch een zeer belangrijk concept. Die was ik vergeten in m'n vorige inderdaad > Dus we houden over: C++ zonder destructors, stack based variabelen, > templates, const, en RTTI. Probeer maar eens een serieus, modern C++ > programma te vinden dat die onderdelen niet gebruikt. > > Mijn conclusie: "managed C++" is geen C++ want te veel onderdelen > van C++ zijn niet mogelijk. > > Details: > [Alle quotes zijn voorafgegaan door "*", mijn commentaar staat ertussen] > > http://msdn.microsoft.com/msdnmag/nettop.asp?page=/msdnmag/issues/01/07/vsne t/vsnet.asp&ad=ads.ddj.com/msdnmag/premium.htm > * Unfortunately, managed classes can't be created on the stack. > * They have to be created on the managed heap so that the garbage > * collector can manage them. .NET does have something called value types > * that can be allocated on the stack but, unfortunately, they are not allowed > * to have destructors. In fact, managed types don't really have destructors > * (the method that's called when the object goes out of scope) at all in > * the C++ sense. > C++ constructors kunnen dus niet in .NET worden gevangen. > > Verderop: > * (.NET doesn't support managed templates yet.) > Dus ook de C++ templates kunnen we voorlopig nog vergeten. > > http://www.gotdotnet.com/team/cplusplus/articles/mcspec.doc > Hoofdstuk 25 noemt wat beperkingen: > * There is no verifier for MSIL generated for Managed Extensions > for C++ programs. > Developers and testers need to check code for conditions that may > have adverse effects. These include buffer and stack overflows, type > correctness, and pointer operations. > * The C++ RTTI operators shall not be applied to managed objects. > RTTI is not supported. > * The common language runtime has no representation for non-public > inheritance. > * The const and volatile modifiers on member functions are not supported. (shit, werkoverleg, gegroet)
Technical Details
Message-ID:
<3c70b63f$0$220$4d4ebb8e@news.nl.uu.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!newsfeed.online.be!195.129.110.18.MISMATCH!bnewspeer00.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.nl.uu.net!not-for-mailReferences:
<uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c6c35f1.5840688@newszilla.xs4all.nl> <1013742119.309832@seven.kulnet.kuleuven.ac.be> <3c6e35cf.1533535@newszilla.xs4all.nl> <1013895537.659605@seven.kulnet.kuleuven.ac.be> <slrna6tm41.3mc.usenet@dolens.mobach.nl> <1013913710.524385@seven.kulnet.kuleuven.ac.be> <3C6FD2B5.1D31CC72@wanadoo.nl> <1013970800.921078@seven.kulnet.kuleuven.ac.be> <rn8z9saqz0.fsf@keyser.soze.com> <3C701E9B.E4E373FF@wanadoo.nl> <DdVb8.28378$ql6.2476775@zwoll1.home.nl> <1013988325.966701@seven.kulnet.kuleuven.ac.be> <3C7047EC.EC6753E0@wanadoo.nl>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,65d4c4d6a1e8dc39 X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,65d4c4d6a1e8dc39 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-02-18 00:07:29 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!newsfeed.online.be!195.129.110.18.MISMATCH!bnewspeer00.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.nl.uu.net!not-for-mail From: "Serve La" <stay@content.nl> Newsgroups: be.comp.programming,nl.comp.programmeren References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c6c35f1.5840688@newszilla.xs4all.nl> <1013742119.309832@seven.kulnet.kuleuven.ac.be> <3c6e35cf.1533535@newszilla.xs4all.nl> <1013895537.659605@seven.kulnet.kuleuven.ac.be> <slrna6tm41.3mc.usenet@dolens.mobach.nl> <1013913710.524385@seven.kulnet.kuleuven.ac.be> <3C6FD2B5.1D31CC72@wanadoo.nl> <1013970800.921078@seven.kulnet.kuleuven.ac.be> <rn8z9saqz0.fsf@keyser.soze.com> <3C701E9B.E4E373FF@wanadoo.nl> <DdVb8.28378$ql6.2476775@zwoll1.home.nl> <1013988325.966701@seven.kulnet.kuleuven.ac.be> <3C7047EC.EC6753E0@wanadoo.nl> Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ? Date: Mon, 18 Feb 2002 09:07:33 +0100 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Lines: 85 Message-ID: <3c70b63f$0$220$4d4ebb8e@news.nl.uu.net> NNTP-Posting-Host: www.cdeurope.nl X-Trace: 1014019648 news.nl.uu.net 220 194.229.82.1 X-Complaints-To: abuse@nl.uu.net