Boost logo

Boost :

Subject: Re: [boost] [TypeErasure] Forward constructors and binded types
From: Vicente Botet (vicente.botet_at_[hidden])
Date: 2012-07-18 14:43:40

Steven Watanabe-4 wrote
> 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&lt;construct, _a&amp;amp;, _b, _c&gt; t1(vec, i, d);
>> tuple&lt;construct, _a&amp;amp;, _b, _c&gt; t2(x, i, d);
>> any&lt;construct, _a&gt; v1(get<1>(t1), get<2>(t1));
>> any&lt;construct, _a&gt; 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.



View this message in context:
Sent from the Boost - Dev mailing list archive at

Boost list run by bdawes at, gregod at, cpdaniel at, john at