On 9/7/2013 12:43 PM, Andrej Mitrovic wrote:
On 9/7/13, Walter Bright <newshou...@digitalmars.com> wrote:
http://wiki.dlang.org/DIP47
Your example code:
-----
struct S {
static int mfunc(int a, int b = 5) pure; // member function declaration
}
int S.mfunc(int a, int b) pure { // member function definition
...
}
-----
Two things:
1. Why are you demonstrating static functions and not regular member
functions (or better yet why not both)?
Because I wanted to point out that you didn't need to put the 'static' in front
of the definition.
2. Why has 'static' been removed at the outlined implementation
function? It should also be there:
static int S.mfunc(int a, int b) pure { // member function definition
}
Why?
To reiterate, let's not introduce a feature where we can be totally
lax about what we do at the declaration and implementation site. My
strong opinion is that the declaration and implementation must
perfectly match, otherwise you can throw the readability argument out
the window.
On the other hand, DRY, and I don't recall anyone ever complaining about this in
C++ outlined members.