digitalmars.D.learn - Get AA key and value type
- Pierre (13/13) Sep 19 2015 Hi everybody,
- ponce (10/12) Sep 19 2015 ---------->8---------
- Pierre (3/15) Sep 19 2015 You're right it's OK now.
- Marc =?UTF-8?B?U2Now7x0eg==?= (7/9) Sep 19 2015 You can also do it with built-in syntax:
- Pierre (4/15) Sep 20 2015 I see, maybe .KeyType and .ValueType should be integrated in AA.
- =?UTF-8?Q?Ali_=c3=87ehreli?= (4/7) Sep 20 2015 Currently, they are templates in std.traits:
- Pierre (2/11) Sep 20 2015 Nice! thank you for the information.
- NX (2/8) Sep 20 2015 K[V] supposed to be V[K] btw...
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.
Sep 19 2015
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.
Sep 19 2015
On Saturday, 19 September 2015 at 12:52:19 UTC, ponce wrote:On Saturday, 19 September 2015 at 12:50:51 UTC, Pierre wrote:You're right it's OK now. Thank you.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.
Sep 19 2015
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; }
Sep 19 2015
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: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.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; }
Sep 20 2015
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
Sep 20 2015
On Sunday, 20 September 2015 at 09:34:15 UTC, Ali Çehreli wrote:On 09/20/2015 12:47 AM, Pierre wrote:Nice! thank you for the information.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
Sep 20 2015
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...
Sep 20 2015