[GRASS5] C and C++ compiler changes?

Laura Toma ltoma at bowdoin.edu
Sun Oct 26 21:08:11 EST 2003

On Wednesday, October 22, 2003, at 09:07 PM, Glynn Clements wrote:

> Laura Toma wrote:
>> Yes, only for C++. It certainly is a pain to maintain C++ with the new
>> gcc 3.x, but there's no way around it..It's  the price to pay for
>> efficient code.
>> The main reason r.terraflow is in C++ instead of C is templating.
> In that case, some portability issues are probably inevitable.
> Templates were one of the last things to be standardised, and one of
> the last things to be fixed in gcc.

yes..should not be a problem on any platform for which gcc is 
supported. but won't work with other compilers.

>> All
>> functions are templated and the type is determined at runtime,
> Er, compile time, right? Or is it using virtual methods?

yes, i meant compile time. no virtual methods (they're slow).

>> causing
>> the appropriate function to be instantiated. This is more efficient 
>> than
>> using void* in C, and also saves *a lot* of redundant code.
> Is this just for ELEV_SHORT vs ELEV_FLOAT, or is it more extensive
> than that?

essentially that's it, plus all the type that include these two.  
practically everything is templated.

> -- 
> Glynn Clements <glynn.clements at virgin.net>


More information about the grass-dev mailing list