This is the mail archive of the
cygwin-talk
mailing list for the cygwin project.
RE: Why I love C++ so much.
On 22 February 2008 16:33, Igor Peshansky wrote:
> On Fri, 22 Feb 2008, Dave Korn wrote:
>
>> On 22 February 2008 16:14, Igor Peshansky wrote:
>>
>>> On Fri, 22 Feb 2008, Danilo Turina wrote:
>>>
>>>> Corinna Vinschen wrote:
>>>>> On Feb 21 05:26, Warren Young wrote:
>>>>>> Corinna Vinschen wrote:
>>>>>>> Really? Show me an example which isn't much harder to understand than
>>>>>>> the equivalent C code.
>>>>>> template <class T>
>>>>>> std::string foo(const T& x)
>>>>>> {
>>>>>> std::ostringstream outs;
>>>>>> outs << x << and << maybe << other << stuff;
>>>>>> return outs.str();
>>>>>> }
>>>>>>
>>>>>> (Aside: This looks pointlessly trivial, but it's a simplified version
>>>>>> of real code in MySQL++ (http://tangentsoft.net/mysql++/). It would
>>>>>> just muddy the waters to talk about the reason MySQL++ does this.)
>>>>>>
>>>>>> To do that with C functions (maybe strto*() instead of printf()) you'd
>>>>>> have to create a set of template specializations for every T you know
>>>>>> about to call the right C function with the right arguments. Any time
>>>>>> you add to the list of supported T's, you have to add template
>>>>>> specializations.
>>>>>
>>>>> Argh. Using templates as an example for simplicity is somewhat daring.
>>>>> Templates, liberally used, are a good way to make code unreadable.
>>>>>
>>>>> IMHO.
>>>>>
>>>>> FWIW.
>>>>>
>>>>> YMMV.
>>>>>
>>>>> YMCA.
>>>
>>> "Young men, no need to feel down"... That brings back memories. :-)
>>
>> Didn't bring back the memory of the word "there's", I note!
>
> Hey, I didn't say they were *perfect* memories.
>
>>>> C++ is like Unix, people that don't like it is because they don't
>>>> understand it.
>>>
>>> C++ is for people who want to be able to not just shoot themselves in the
>>> foot, but do it with a rocket launcher. Unix allows one to throw a
>>> grenade under their own feet. So yes, they are very similar.
>>
>> But it wasn't a rocket-launcher when I picked it up, it was a bar of
>> soap, it only overloaded itself into a rocket launcher when I tried to
>> wash my feet with it instead of my hands!
>
> No, it was a rocket launcher all along. It just happened to be an
> overloaded "bar of soap" operator. You should be careful with the type of
> the operands...
> Igor
My desert polish just overloaded itself into a floor-topping :-(
cheers,
DaveK
--
Can't think of a witty .sigline today....