Re: How to get return type of current method?

2017-04-18 Thread Ali Çehreli via Digitalmars-d-learn

On 04/18/2017 06:40 PM, Meta wrote:
> On Wednesday, 19 April 2017 at 00:22:14 UTC, Mike B Johnson wrote:
>> On Tuesday, 18 April 2017 at 23:49:35 UTC, ketmar wrote:
>>> Mike B Johnson wrote:
>>>
 How can I get the return type of the current method without
 specifying the name or any complexity? Similar to typeof(this).
>>>
>>> typeof(return)
>>
>> Thanks, sweet and simple!
>
> One note: if the function has a return type of `auto`, you cannot use
> `typeof(return)` within the function.

Actually that works but apparently order matters:

import std.stdio;

bool condition;

auto foo() {
// Compilation ERROR here
writeln(typeof(return).stringof);

if (condition) {
return 1.5;
}

return 42;
}

void main() {
foo();
}

Error: cannot use typeof(return) inside function foo with inferred 
return type


But if you move typeof(return) after the first return statement, which 
determines the return type of the function per spec, then it works:


auto foo() {
if (condition) {
return 1.5;
}

// Works here
writeln(typeof(return).stringof);

return 42;
}

Prints "double".

Ali



Re: How to get return type of current method?

2017-04-18 Thread Meta via Digitalmars-d-learn

On Wednesday, 19 April 2017 at 00:22:14 UTC, Mike B Johnson wrote:

On Tuesday, 18 April 2017 at 23:49:35 UTC, ketmar wrote:

Mike B Johnson wrote:

How can I get the return type of the current method without 
specifying the name or any complexity? Similar to 
typeof(this).


typeof(return)


Thanks, sweet and simple!


One note: if the function has a return type of `auto`, you cannot 
use `typeof(return)` within the function.


Re: How to get return type of current method?

2017-04-18 Thread Mike B Johnson via Digitalmars-d-learn

On Tuesday, 18 April 2017 at 23:49:35 UTC, ketmar wrote:

Mike B Johnson wrote:

How can I get the return type of the current method without 
specifying the name or any complexity? Similar to typeof(this).


typeof(return)


Thanks, sweet and simple!


Re: How to get return type of current method?

2017-04-18 Thread ketmar via Digitalmars-d-learn

Mike B Johnson wrote:

How can I get the return type of the current method without specifying 
the name or any complexity? Similar to typeof(this).


typeof(return)


How to get return type of current method?

2017-04-18 Thread Mike B Johnson via Digitalmars-d-learn
How can I get the return type of the current method without 
specifying the name or any complexity? Similar to typeof(this).