help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] a question on an implementation choice


From: Nicolas Bock
Subject: Re: [Help-gsl] a question on an implementation choice
Date: Thu, 17 Feb 2011 14:07:01 -0700

Hi Jordi,

thanks for the detailed reply. Good point about the C/C++ hybrid.
Thanks to you, I feel better again about my choice of C and my feeling
against using C++, just for the templates :)

Thanks again,

nick


2011/2/17 Jordi Gutiérrez Hermoso <address@hidden>:
> 2011/2/17 Nicolas Bock <address@hidden>:
>> 2011/2/17 Jordi Gutiérrez Hermoso <address@hidden>:
>>> On 17 February 2011 13:15, Nicolas Bock <address@hidden> wrote:
>>>> I am writing a small linear algebra library
>>> [snip]
>>>> would like to reuse existing code as much as possible.
>>>
>>>     http://arma.sourceforge.net/
>>>
>>> or the present GSL.
>>>
>>> There really is no reason to write your own linear algebra library,
>>> no matter how small. Well, unless the reason is educational.
>
>> Yes, the reason is educational :)
>
> In that case, it looks like you've discovered C templates. C++
> templates were inspired by it and were intended to replace C
> templates. Originally templates in C++ were just a mechanism to
> replace C preprocessor templates with something that compiler could
> understand (as you know, CPP macros aren't seen by the compiler).
> Later people realised that C++ templates were their own little
> sublanguage of C++ and went to town with them.
>
> As to your original questions...
>
>> * Why did you decide to stick with C and not use C++ and its
>> template functionality? Wouldn't that have lead to a cleaner
>> implementation?
>
> GSL is part of GNU, and GNU generally dislikes C++. I do think GNU
> writes the most beautiful C code out there, which is a rarity. Much
> "C" code is more properly called "C/C++", a bizarre Frankenstein
> monster of a language, if you ask me. Mind you, I don't mind C++
> myself, but I don't like it when C and C++ mix. They are two separate
> languages and should stay that way. In my opinion.
>
>> * Was portability an issue?
>
> GNU likes C, because C is sleek.
>
>> * Was there a particular reason to implement the templates in the C
>> files with includes to other C files as opposed to in the makefile
>> with "-D..." preprocessor arguments?
>
> This is analogous to explicit template instantiation in C++. You could
> also do it by passing CPP macros in the compilation line. This is just
> a matter of taste.
>
> - Jordi G. H.
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]