changeset 621:a4e907daaf85

const: compile or runtime? xs0 <xs0@xs0.com> 2005-08-11 news:ddfegl$2uof$1@digitaldaemon.com
author thomask
date Fri, 12 Aug 2005 15:32:23 +0000
parents 03ad4005cd8e
children 7acb8b34c87a
files undefined/const_24.d
diffstat 1 files changed, 41 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/undefined/const_24.d	Fri Aug 12 15:32:23 2005 +0000
@@ -0,0 +1,41 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@	xs0 <xs0@xs0.com>
+// @date@	2005-08-11
+// @uri@	news:ddfegl$2uof$1@digitaldaemon.com
+
+//
+// http://www.digitalmars.com/d/attribute.html
+//
+// (1)
+// The const attribute declares constants that can be evaluated at
+// compile time.
+//
+// (2)
+// A const declaration without an initializer must be initialized in a
+// constructor (for class fields) or in a static constructor (for static
+// class members, or module variable declarations).
+//
+
+module dstress.undefined.const_24;
+
+class Class{
+	const int i;
+	
+	this(){
+		i=dynamicInt; // illegal(1) or legal(2) ?
+	}
+}
+
+int dynamicInt;
+
+int main(char[][] args){
+	dynamicInt=args.length;
+	
+	Class c = new Class();
+	assert(c.i==args.length);
+	
+	return 0;
+}
\ No newline at end of file