| Thread overview | 
|---|
August 01, 2007 .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
 | ||||
August 01, 2007 Re: .sizeof on templates needs extra parens? | ||||
|---|---|---|---|---|
  | ||||
Posted in reply to C. Dunn  | 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 int
keep 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
 | |||
Copyright © 1999-2021 by the D Language Foundation
 
Permalink
Reply