What are the unused but useful feature you know in D?

bauss jj_1337 at live.dk
Wed Nov 8 02:16:01 UTC 2017


On Wednesday, 8 November 2017 at 01:24:57 UTC, codephantom wrote:
> On Sunday, 25 June 2017 at 23:21:25 UTC, aberba wrote:
>> Can you share feature(s) in D people are not talking about 
>> which you've found very useful?
>
> How about this feature: i.e. it actually compiles just fine ;-)
>
> //------------------------------------------------------------
>
> module test;
>
> void main()
> {
>     void main()
>     {
>         void main()
>         {
>             void main()
>             {
>                 void main()
>                 {
>                     void main()
>                     {
>                         void main()
>                         {
>                             //and so on... and so on....and so 
> on....
>                         }
>                     }
>                 }
>             }
>
>         }
>     }
> }
>
> //------------------------------------------------------------

I laughed.

At it's even funnier when you realize that there's actually 
generated assembly code for the nested main functions:

```
void test.main().main():
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  leaveq
  retq
  xchg   %ax,%ax
```

However as you can see it only generates for one of the nested 
functions, the rest are omitted.

You can never call the function though :p



More information about the Digitalmars-d mailing list