Dear Eric,
I will certainly have another read over make_expr. But, I have a feeling that I might not have explained what I need very well. So, with some connection to the function streaming thing we were in contact on previous threads, here is an example:
MyClass mc(_1 >> &f >> &g >> &h);
mc.set_input(-61.1);
cout << mc.value();//returns h(g(f(-61.1)))
Now, are you telling me that I can store that "_1 >> &f >> &g >> &h" bit in a data member of mc using make_expr? If so, what will the type of that data member be? Or, are you suggesting a totally different design?
This is not possible in C++. It becomes possible if you specify the type of the argument:
MyClass<double> mc(...);
Now mc.set_input can only be called with double.
Roman Perepelitsa.