$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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?