Re: c++ function templates and memory hogging

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

 



* Guido Loupias <guidoloupias@xxxxxxxxx> [2008-12-10 19:51:33 +0100]:

> Why does the following behavior occur?
>
> I have 2 naive implementations of fibonacci through function templates.
> The first one has no problem compiling fib<46>(). However the second one 
> starts eating significant memory when N > 23. It's gradual (seems to be 
> exponential with regard to N) but when N = 27 the compilation process 
> consumes about a gigabyte.

i do not attempt to answer your problem, but i thought traditional way to do
compile-time computation was like:

template<int N>
struct fib {
    static int const n = fib<N-1>::n + fib<N-2>::n;
};
template<>
struct fib<0> {
    static int const n = 0;
};
template<>
struct fib<1> {
    static int const n = 1;
};

(or using enums) which behaves much better for me. local gurus will probably 
explain best why..

best regards,
mojmir

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux