Author: Bo Persson
Date: 14:10:21 09/16/01
Go up one level in this thread
On September 16, 2001 at 16:12:13, Vincent Diepeveen wrote: >On September 16, 2001 at 07:40:24, Bo Persson wrote: > >>On September 15, 2001 at 17:52:29, Sune Fischer wrote: >> >>[...] >> >>>LOL, thank you all for your insight, I will try rewriting it to use pointers. >> >>Please, don't! >> >>>I've been using references ever since I read the following in a C++ book: >>>"Specifying a parameter to a function as a reference changes the method of >>>passing data for that parameter. The method used is not pass-by-value where an >>>argument is copied before being passed, but pass-by-reference where the >>>parameter acts as an alias for the argument passed. This eliminates any copying >>>and allows the function to access the caller argument directly. It also means >>>that the de-referencing, which is required when passing and using a pointer >>> to a value, is also unnecessary." >>> >>>That lead me to believe that pointers where actually slower, however I have >>>never tested for myself. >> >>A reference parameter is usually (close to always!) implemented as a pointer >>anyway, so you will not save anything but only mess up your code. >> >> >> >>>I have always believed that C++ was slower than C, some people I know thinks >>>otherwise. Anyone have an estimate of how much slower it is? >>>I've been thinking of rewriting to C++, but no way if it would slow it down! >> >>In the next post Vincent claims that *his* C++ code is much slower than his C >>code. This is not and indication that the C++ *language* is bad, just that it is >>possible to write very bad C++ *code*. You don't have to do that! >> >> >>For example: >>You can structure your code in C++ classes without any need whatsoever to >>allocate them dynamically. > >In that case it's no longer c++ code but comletely imperative code and >can be as easily seen as C code. > >If you write good c++ object oriented code then that's hell slower than >any C code of course written by the same programmer. How is it *good* if it is slow? :-) Using classes to structure your code in now way forces you to allocate class instances dynamically. Why would you? >>C++ allows you to inline a large number of small functions, saving a lot of code >>without using *ugly* macros. > >those can get inlined in C easily, in fact compilers are pretty good in >inlining such things. I get even the impression they inline too much >sometimes. But the C *language* does not have an 'inline' directive. That is C++! I know some compilers have it as an extension (especially if they also complie C++), but now we are talking implementation and not language. There is *nothing* in C++ that forces you to write slower code. There are features of C++ that *enables* you to write faster code. You choose! >>The stronger typing of C++ allows a compiler to rule out some of the aliasing >>for parameters, because it can assume that a class Piece& and a class Square& >>are not aliased (even though they are possibly ints internally). > >>>-S. >> >>Bo Persson >>bop2@telia.com Bo Persson bop2@telia.com
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.