How to return user name from vibed session?

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Dec 10 06:29:46 PST 2015


On Thursday, 10 December 2015 at 13:46:19 UTC, Suliman wrote:

>
> because set return void, and get return T?

No, it has nothing to do with the return type declarations. It's 
about whether or not the compiler has enough information to 
deduce the types.

V get(V, K)(K key, V defaultVal);

auto i = 10;
i = get("key", i);

This works because the compiler sees that you have given it a 
string where it expects a K and an int where it expects a V, so 
it knows that K = string and V = int. On the other hand:

V get(V, K)(K key);

auto i = get("key");

What type is this supposed to return? Even if you do this:

int i = get("key");

Obviously, the compiler knows that i is int, but that plays no 
role in template type deduction. Only the template declaration 
and instantiation do. So we have to explicitly tell the compiler 
what type V should be in this case by passing the type as a 
template argument.

auto i = get!int("key");


More information about the Digitalmars-d-learn mailing list