Implicit Template Properties - rules change proposal

Tom S h3r3tic at remove.mat.uni.torun.pl
Tue Jun 20 09:26:55 PDT 2006


I often find myself creating templates like:

// ----
tempate doSomethingImpl(T) {
	template loop(int i) {
		....
		alias ... loop;
	}

	alias loop!(0) res;
}

template doSomething(T) {
	alias doSomethingImpl!(T).res doSomething;
}
// ----

Clearly the second template is redundant and exists there only to make 
the usage pattern easier.
My proposal is to change the rules for implicit template properties

from:
"If a template has exactly one member in it, and the name of that member 
is the same as the template name, that member is assumed to be referred 
to in a template instantiation"

to:
"If a template has exactly one *public* member in it, (...) "


Then, the template would look like:

// ----
tempate doSomething(T) {
	private template loop(int i) {
		....
		alias ... loop;
	}

	alias loop!(0) doSomething;
}
// ----



Opinions ?


-- 
Tomasz Stachowiak  /+ a.k.a. h3r3tic +/



More information about the Digitalmars-d mailing list