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
>
> 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&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.

Best,
Vicente

 

--
View this message in context: http://boost.2283326.n4.nabble.com/TypeErasure-Forward-constructors-and-binded-types-tp4633181p4633229.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk