Boost logo

Boost Users :

Subject: Re: [Boost-users] Inline functions in boost/utility
From: Timenkov Yuri (ytimenkov_at_[hidden])
Date: 2009-02-12 15:33:00


On Tue, Feb 10, 2009 at 7:59 PM, Niels Dekker - mail address until
2010-10-10 <niels_address_until_2010-10-10_at_[hidden]> wrote:

> Timenkov Yuri wrote:
>
>> Looking through assembly code of simple test produced by gcc with
>>> optimization, I've noticed that free functions in
>>> utility/value_init.hpp (get and set) are not declared as inline,
>>> though its body consist only of prologue and epilogue.
>>>
>>> Is there any reason for this or just a bug?
>>>
>>
> Sorry, I don't really get it. First of all, utility/value_init.hpp doesn't
> have a "set". Do you mean "swap"? But secondly it's really up to the
> compiler whether or not those functions are inlined. An "inline" keyword
> would only be a hint to the compiler to do so, in this case. But as
> value_init.hpp provides the complete definitions of the function templates,
> it shouldn't be hard for the compiler to apply inlining. Are you saying
> that gcc would /only/ inline those functions, when they are declared as
> inline?
>
Actually there are 2 get functions :) (one is const one), but when I glanced
through this file I saw first get and assumed the second one should be set.

As already said in this thread, they are template functions (therefore they
can be defined in header), but since they aren't declared as inline, gcc
doesn't try to inline them.

I supposed this happened because member functions defined in class
declaration are inline (I don't remember the exact paragraph of standard),
so most of boost library may be inlined by compiler. But here developer
might forgot to declare free function as inline too.

>
> Kind regards,
> --
> Niels Dekker
> http://www.xs4all.nl/~nd/dekkerware>
> Scientific programmer at LKEB, Leiden University Medical Center
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
>
http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net