Boost logo

Boost :

Subject: Re: [boost] [Boost-interest] C++ library for runtime-concepts (type-erasure)
From: Daniel Larimer (dlarimer_at_[hidden])
Date: 2011-02-15 09:34:31


On 2/15/11 4:58 AM, "Germán Diago" <germandiago_at_[hidden]> wrote:

>> I'm not sure if I understand correctly what you mean but if
>> you are referring to transforming something like this...
>>
>> struct some_type
>> {
>>  T1 m1;
>>  T2 m2;
>>   ...
>>  Tn mn;
>> };
>>
>
> That was a goal of Boost.IDL interfaces, but I tried to make a summary of
> what would be useful to take into account to design things that don't overlap.
>
>
>>
>> then it will be doable with Mirror (it actually already is
>> in the old version and partially also in the new one
>> but still undocumented).

Color me very interested in how you achieved this. Though what I would
really like to see is:

struct some_type
{
    std::string append( std::string, double );
};

Converted Into functionally equivalent =>

struct new_some_type
{
    future<string> append( string, double )
    {
        future<string> fut;
        m_socket->async_sendto( serialize( s, d ),
            host, boost::bind(wait_for_response, fut );
        return fut;
    }
};

Or converted Into =>

struct some_new_type
{
    function<string(string,double)> append;
};

Using just your Mirror mirror macros + templates?

I am very impressed with Mirror, but its dependency on C++0x features that
are not available in MSVC is almost a non-starter for me. Particularly
because even though gcc supports much of C++0x, Mac OS X Development Tools
still comes bundled with gcc 4.2.1 which does not support ANY C++0x.

If you can show an example of how mirror would accomplish that, I will have
to reconsider my approach to Type Erasure, RPC, and serialization.

What is the status of Mirror's review for inclusion in official Boost?


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