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