On 9 July 2010 02:29, Frank Winter <frank.winter@xxxxxxx> wrote: > > How can I make sure the compiler unrolls the loop and inlines all function > calls? Do I have to use the preprocessor in my case? > if you're *really* sure you know so much better than the heuristics, then: - __attribute__((__force_inline__)) or something like that will inline the calls - And change the loop to one at compile time using template specialization template <unsigned I> struct repeat { template <typename F> repeat(F f) { f(); repeat<I-1>(f); } }; template <> struct repeat<0> { template <typename F> repeat(F) {} }; void bar(); void foo() { repeat<4>(bar); } HTH, ~ Scott