May 12, 2004 Static in templates, member scope | ||||
---|---|---|---|---|
| ||||
// Static variable in template member changes only one time. class A { void foo() { static int x = 0; x++; printf("%d", x); } } class B(T) { void foo() { static int x = 0; x++; printf("%d", x); } } void main() { A a = new A(); B!(int) b = new B!(int)(); a.foo(); a.foo(); a.foo(); printf("\n"); // outputs 123 b.foo(); b.foo(); b.foo(); printf("\n"); // outputs 111 } // If declare 'static int x = 0' in class (or template) scope, 'B' output is "123". |
Copyright © 1999-2021 by the D Language Foundation