On Sunday, 20 September 2015 at 05:50:16 UTC, Ali Çehreli wrote:
On 09/19/2015 10:30 PM, H. S. Teoh via Digitalmars-d-learn wrote:
On Sun, Sep 20, 2015 at 05:21:03AM +0000, WhatMeWorry via Digitalmars-d-learn wrote:
[...]
Thanks. But now I have an even more fundamental problem. I keep getting a FieldNameTuple is not defined. But I've clearly got the import statement. I even copied the example from Phobos verbatim:

import std.traits;

struct S { int x; float y; }
static assert(FieldNameTuple!S == TypeTuple!("x", "y"));

You need to use is(...) when comparing types:

        static assert(is(FieldNameTuple!S == TypeTuple!("x", "y")));

HTH,


--T


True but ever-confusingly, they are not types. :) It works without the is expression. Otherwise, we need to add typeofs as well:

static assert(is(typeof(FieldNameTuple!S) == typeof(AliasSeq!("x", "y"))));

Ali

Should of tried this earlier, but just for grins I threw in another trait: EnumMembers.

import std.traits;

struct S { int x; float y; }
static assert(FieldNameTuple!S == TypeTuple!("x", "y"));  // FAILS

enum E : int { a, b, c }
int[] abc = cast(int[]) [ EnumMembers!E ];    // WORKS


The EnumMembers from traits compiles/links fine. Ergo, it must be I've got an old version of D Lib? I see on the web site that D Lib is now at 2.068.1

Looking at my old folders, I see a dmd-2.066_0-OneClickWindowInstaller folder that I must of used around October 2014 for my initial install. Is there a tool or subsystem that I can use to see the history or FildNameTyple?

Now, I need to figure out how to upgrade my D, DMD or Phobos (not sure about terminology) without disturbing my Visual D environment. Wish me luck :)

Thanks for helping me with these beginner questions.





Reply via email to