$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?