
On 07/18/12 13:43, Vicente Botet wrote:
Steven Watanabe-4 wrote
AMDG
On 07/18/2012 10:47 AM, Vicente Botet wrote:
Is the following correct?
class X { public: X(int, double); };
std::vector<double> vec; int i = 10; double d = 2.5; X x;
tuple<construct, _a&, _b, _c> t1(vec, i, d); tuple<construct, _a&, _b, _c> t2(x, i, d); any<construct, _a> v1(get<1>(t1), get<2>(t1)); any<construct, _a> v2(get<1>(t2), get<2>(t2));
If yes, how v1 is bound to vec and v2 to x?
It isn't. v1 stores a std::vector<double> which is constructed in place and is not related to vec in any way.
v2 again hold a separate object of type X, which is created using X(int, double).
Well, I think I have understood how this can work.
get<1>(t1) returns an any that has a binding std::vector<double>,int,double and is this binding that allows to associate _a to std::vector<double>.
I 'd appreciate if the documentation clarifies what these bindings are, how they are built built and used.
+1 Before Vicente mentioned the binding thing, I thought: get<1>(t1) would return an any which was bound to an int, and: get<2>(t1) would return an any which was bound to a double, but now, if Vicente is correct, the get's return an any that has the complete construct bindings. Thanks Vicente. -regards, Larry