On 3/17/14, 6:26 AM, Manu wrote:
On 15 March 2014 14:55, Manu <turkey...@gmail.com
<mailto:turkey...@gmail.com>> wrote:

    On 15 March 2014 14:33, Daniel Murphy <yebbliesnos...@gmail.com
    <mailto:yebbliesnos...@gmail.com>> wrote:

        "Manu" <turkey...@gmail.com <mailto:turkey...@gmail.com>> wrote
        in message
        news:mailman.128.1394856947.__23258.digitalmars-d@puremagic.__com...

             > Haven't we already agreed a pragma for force inline
            should be > implemented. Or is
             > that something I have dreamed?

            It's been discussed. I never agreed to it (I _really_ don't
            like it), but I'll take it if it's the best
            I'm gonna get.

            I don't like stateful attributes like that. I think it's
            error prone, especially when it's silent.
            'private:' for instance will complain if you write a new
            function in an area influenced by the
            private state and try and call it from elsewhere; ie, you
            know you made the mistake.
            If you write a new function in an area influenced by the
            forceinline state which wasn't intended
            to be inlined, you won't know. I think that's dangerous.


        Huh?  The pragma could easily be restricted to apply to exactly
        one function declaration, if that's what's desired.


    Then why bother with a pragma?
    It's just a special case for the sake of a special case... I don't
    see why resist the language conventions. Where's the precedent for
    that? It just sounds like it's asking to cause edge cases and
    trouble down the line.
    Is it gonna get messy when it involves with templates? What about
    methods, sub-functions?


*bump*
I actually care about this a whole lot more than final-by-default right
now ;)

I'd like to think there's a possible solution to these problems that
everyone agrees with.

I'd like to see a solution to inlining along the lines of "pliz pliz inline" (best effort) and "never inline".

Outlining only at a specific call site is seldom needed and when it is it's trivially achievable with a noinline function forwarding to the inline function. Inlining only at a specific call site is a tall order and essentially impossible if header generation had been used.


Andrei

Reply via email to