Re: Get AA key and value type

2015-09-20 Thread Pierre via Digitalmars-d-learn

On Saturday, 19 September 2015 at 18:13:09 UTC, Marc Schütz wrote:

On Saturday, 19 September 2015 at 12:50:51 UTC, Pierre wrote:

Hi everybody,

I would like to extract key and value type from AA.



You can also do it with built-in syntax:

template AATypes(AA : K[V], K, V)
{
alias Key = K;
alias Value = V;
}


I see, maybe .KeyType and .ValueType should be integrated in AA.
Or like C++ with map, make a ValueType(::value_type) field wich 
contain a pair of type.


Re: Get AA key and value type

2015-09-20 Thread Ali Çehreli via Digitalmars-d-learn

On 09/20/2015 12:47 AM, Pierre wrote:


I see, maybe .KeyType and .ValueType should be integrated in AA.
Or like C++ with map, make a ValueType(::value_type) field wich contain
a pair of type.


Currently, they are templates in std.traits:

  http://dlang.org/phobos/std_traits.html#KeyType

Ali



Re: Get AA key and value type

2015-09-20 Thread NX via Digitalmars-d-learn

On Saturday, 19 September 2015 at 18:13:09 UTC, Marc Schütz wrote:

You can also do it with built-in syntax:

template AATypes(AA : K[V], K, V)
{
alias Key = K;
alias Value = V;
}


K[V] supposed to be V[K] btw...


Re: Get AA key and value type

2015-09-20 Thread Pierre via Digitalmars-d-learn

On Sunday, 20 September 2015 at 09:34:15 UTC, Ali Çehreli wrote:

On 09/20/2015 12:47 AM, Pierre wrote:

I see, maybe .KeyType and .ValueType should be integrated in 
AA.
Or like C++ with map, make a ValueType(::value_type) field 
wich contain

a pair of type.


Currently, they are templates in std.traits:

  http://dlang.org/phobos/std_traits.html#KeyType

Ali


Nice! thank you for the information.


Re: Get AA key and value type

2015-09-19 Thread Marc Schütz via Digitalmars-d-learn

On Saturday, 19 September 2015 at 12:50:51 UTC, Pierre wrote:

Hi everybody,

I would like to extract key and value type from AA.



You can also do it with built-in syntax:

template AATypes(AA : K[V], K, V)
{
alias Key = K;
alias Value = V;
}


Re: Get AA key and value type

2015-09-19 Thread ponce via Digitalmars-d-learn

On Saturday, 19 September 2015 at 12:50:51 UTC, Pierre wrote:

So how can I get types without instance ?
Thanks for help.


-->8-

template AATypes(T)
{
  // todo: static assert if T is no AA type here

  alias ArrayElementType!(typeof(T.init.keys)) key;
  alias ArrayElementType!(typeof(T.init.values)) value;
}


-->8-


Should work.


Get AA key and value type

2015-09-19 Thread Pierre via Digitalmars-d-learn

Hi everybody,

I would like to extract key and value type from AA.

I found this answer on forum :

template AATypes(T)
{
  // todo: static assert if T is no AA type here

  alias ArrayElementType!(typeof(T.keys)) key;
  alias ArrayElementType!(typeof(T.values)) value;
}

But compiler failed,I think T need to be a value in order to get 
keys and values attributes.


So how can I get types without instance ?
Thanks for help.


Re: Get AA key and value type

2015-09-19 Thread Pierre via Digitalmars-d-learn

On Saturday, 19 September 2015 at 12:52:19 UTC, ponce wrote:

On Saturday, 19 September 2015 at 12:50:51 UTC, Pierre wrote:

So how can I get types without instance ?
Thanks for help.


-->8-

template AATypes(T)
{
  // todo: static assert if T is no AA type here

  alias ArrayElementType!(typeof(T.init.keys)) key;
  alias ArrayElementType!(typeof(T.init.values)) value;
}


-->8-


Should work.


You're right it's OK now.
Thank you.