On 18.05.2013, at 23:54, Vicente J. Botet Escriba
This is really a lot of good and interesting work on your library.
Moving all the library to the Boost standards would be quite a lot of work however. Replacing some classes by the corresponding Boost ones.
I would see already several Boost libraries in your libcppa library: * Atoms * CowTuples * Dynamically Typed Tuples - type erased tuples * Tuples Pattern matching * Actors
I gave this some thoughts. cow_tuple and any_tuple use the same data representation underneath. In this way, there is no 'conversion' from one to the other. Assigning a cow_tuple to an any_tuple is trivial. To restore the type information, tuple_cast can be used. This cast also allows for wildcards:
auto t0 = make_cow_tuple(1, 2, 3, 4);
any_tuple t1 = t0;
auto opt = tuple_cast
Just to reiterate, HPX (https://github.com/STEllAR-GROUP/hpx/) is a very similar library exposing actor oriented paradigms to the programmer (amongst other things), just wrapped up into a C++11 compliant interface (future, async, thread, bind, function, tuple, etc.). It's usable with C++03 compliant compilers (I have not tried msvc-9.0, though). While not part of Boost, it strongly adheres to Boost coding guidelines and style and it is maintained by long standing Boost authors.
Hartmut, I can understand that you want to advertise your work, but hpx has nothing to do with actor programming. I saw your presentation at the C++Now conference. hpx offers a future-based API and you are proposing C#'s syntax for async/await (cf. N3564 [1]). [1] http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3564.pdf Best regards, Dominik