digitalmars.D.learn - .sizeof on templates needs extra parens?
Why do I need extra parentheses to get template.sizeof? class A(T){ T x; }; int y = (A!(int)).sizeof; int z = A!(char).sizeof; // does not compile (line 6) hello.d(6): Error: undefined identifier class A.sizeof hello.d(6): Error: cannot implicitly convert expression (class A.sizeof) of type void to int
Jul 31 2007
C. Dunn wrote:Why do I need extra parentheses to get template.sizeof? class A(T){ T x; }; int y = (A!(int)).sizeof; int z = A!(char).sizeof; // does not compile (line 6) hello.d(6): Error: undefined identifier class A.sizeof hello.d(6): Error: cannot implicitly convert expression (class A.sizeof) of type void to intkeep in mind that class Name(args) is actually just shorthand for template A(T){ class A{ T x; } } A!(int) -> A!(int).A A!(int).sizeof -> A!(int).sizeof // doesn't exits
Aug 01 2007