UFCS for classes with opCall( ... )
    ParticlePeter 
    ParticlePeter at gmx.de
       
    Sat Jun  1 05:22:14 PDT 2013
    
    
  
Hello,
after watching Walters Talk about Component Programming ( link 
Bellow ) I was quite fond of his pipelining approach.
I tried the following and had to realize that this way using UFCS 
isn't working ( or I do something wrong ).
// I want to write On Canvas1 | draw Shape1 | draw Shape2 | ... 
in code ( not working ):
canvas1.shape1.shape2.draw()
// Which in essence would be ( working ):
shape2( shape1( canvas1 ) ).draw()
// With these Classes
class Canvas  {
public:
	drawTarget()  {
		// activate as Draw Target
	}
}
class Shape  {
public:
	Shape opCall( Canvas canvas ) {
		canvas.drawTarget() ;
		return this ;
	}
	Shape opCall( Shape otherShape ) {
		otherShape.draw()
		return this ;
	}
	void draw() {
		// Draw yourself Draw calls
	}
}
FYI: Its OpenGL stuff, Canvas would be the Frambuffer or FBOs, 
and Shape abstrcted draw calls. I have some more building blocks 
which would nicely fit into this pipelining.
1. Is there any way that I could make my wish syntax work with 
D's current features ?
2. Is there a reason that this does not work with UFCS, besides 
"not implemented yet" ?
3. If not 1. Would this be a valid feature requst ?
Thanks for any insights,
Cheers, ParticlePeter !
Walters Talk:
https://www.youtube.com/watch?v=cQkBOCo8UrE
    
    
More information about the Digitalmars-d-learn
mailing list