how come is this legal? 'void fun(int){ }' ?

2015-06-13 Thread Timothee Cour via Digitalmars-d-learn
I understand this is legal for declaration wo definition (void fun(int);)
but why allow this:
void test(int){} ?


Re: how come is this legal? 'void fun(int){ }' ?

2015-06-13 Thread ketmar via Digitalmars-d-learn
On Sun, 14 Jun 2015 05:11:17 +, Maxim Fomin wrote:

 On Sunday, 14 June 2015 at 01:20:39 UTC, Timothee Cour wrote:
 I understand this is legal for declaration wo definition (void
 fun(int);)
 but why allow this:
 void test(int){} ?
 
 Actually it is void test(int _param_0) { }
 You can test by compiling void test(int) { _param_0 = 0; }
 
 Nameless parameters are simulated by providing internal symbol as above.

yet one shouldn't rely on generated names, they are undocumented on 
purpose, and can change without a notice and deprecation cycle.

signature.asc
Description: PGP signature


Re: how come is this legal? 'void fun(int){ }' ?

2015-06-13 Thread Maxim Fomin via Digitalmars-d-learn

On Sunday, 14 June 2015 at 01:20:39 UTC, Timothee Cour wrote:
I understand this is legal for declaration wo definition (void 
fun(int);)

but why allow this:
void test(int){} ?


Actually it is void test(int _param_0) { }
You can test by compiling void test(int) { _param_0 = 0; }

Nameless parameters are simulated by providing internal symbol as 
above.


Re: how come is this legal? 'void fun(int){ }' ?

2015-06-13 Thread Adam D. Ruppe via Digitalmars-d-learn
Sometimes you have empty functions and/or unused parameters just 
to fulfill some interface but you don't actually care about the 
arguments passed. No need to name them if you aren't going to use 
them.