On Tue, 30 Nov 2010, Richard Guenther wrote:

On Tue, Nov 30, 2010 at 9:17 AM, Miles Bader <mi...@gnu.org> wrote:
On Tue, Nov 30, 2010 at 5:13 PM, Gabriel Dos Reis
<g...@integrable-solutions.net> wrote:
If you are doing that, why don't you write a simpler code by
just defining (e.g. initializing) the data member outside the class?

'cause I want the compiler to be able to use (inline) the underlying values.

I think it'll do that with initializing the member outside of the class as well.

struct X { static float const v; };
const float X::v = 1;
int main()
{
 return (int)X::v;
}

at least works for me (even when not optimizing - huh).

I don't know the OP's code, but X would typically be in a header file, included in several translation units. And there is no static or inline you can write in front of "const float X::v = 1;" to help with that.

(with LTO the optimizations might still happen with X::v defined separately)

--
Marc Glisse

Reply via email to