www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Function signature constraint syntax

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
Quick question: I have a function that takes an alias parameter:

	struct X { ... };

	void func(alias G)(object O) {
		...
		X x = ...;
		G(x);
		...
	}

How do I write a signature constraint that essentially specifies that G
should take a parameter of type X and return void?


T

-- 
When solving a problem, take care that you do not become part of the problem.
Feb 02 2012
parent reply "Daniel Murphy" <yebblies nospamgmail.com> writes:
void func(alias G)(object O) if (is(typeof(G(O)) == void)) {

"H. S. Teoh" <hsteoh quickfur.ath.cx> wrote in message 
news:mailman.295.1328245356.25230.digitalmars-d-learn puremagic.com...
 Quick question: I have a function that takes an alias parameter:

 struct X { ... };

 void func(alias G)(object O) {
 ...
 X x = ...;
 G(x);
 ...
 }

 How do I write a signature constraint that essentially specifies that G
 should take a parameter of type X and return void?


 T

 -- 
 When solving a problem, take care that you do not become part of the 
 problem. 
Feb 02 2012
parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Fri, Feb 03, 2012 at 04:50:24PM +1100, Daniel Murphy wrote:
 void func(alias G)(object O) if (is(typeof(G(O)) == void)) {
No, the problem was that G takes another type as parameter, not 'object'. --T
 "H. S. Teoh" <hsteoh quickfur.ath.cx> wrote in message 
 news:mailman.295.1328245356.25230.digitalmars-d-learn puremagic.com...
 Quick question: I have a function that takes an alias parameter:

 struct X { ... };

 void func(alias G)(object O) {
 ...
 X x = ...;
 G(x);
 ...
 }

 How do I write a signature constraint that essentially specifies that G
 should take a parameter of type X and return void?


 T

 -- 
 When solving a problem, take care that you do not become part of the 
 problem. 
-- Without geometry, life would be pointless. -- VS
Feb 03 2012