FWIW, мой голос будет за Boost Signals в любой день.
Повышение обеспечивает мобильность.Конечно, он прекрасно интегрируется, например, с Boost Asio, Functional, Bind и т. Д.
Обновление:
Signals2
В этой документации описан поточно-ориентированный варианторигинальная библиотека Boost.Signals.В интерфейс были внесены некоторые изменения для поддержки безопасности потоков, в основном в отношении автоматического управления соединениями.[....]
Повышение обеспечивает мобильность.Конечно, он прекрасно интегрируется, например, с Boost Asio, Functional, Bind и т. Д.
boost :: signal2 :: signal sig;
sig.connect(&print_sum);
sig.connect(&print_product);
sig.connect(&print_difference);
sig.connect(&print_quotient);
sig(5., 3.);
Эта программа выведет следующее:
The sum is 8
The product is 15
The difference is 2
The quotient is 1.66667
примеры действий:
void print_sum(float x, float y)
{
std::cout << "The sum is " << x+y << std::endl;
}
void print_product(float x, float y)
{
std::cout << "The product is " << x*y << std::endl;
}
void print_difference(float x, float y)
{
std::cout << "The difference is " << x-y << std::endl;
}
void print_quotient(float x, float y)
{
std::cout << "The quotient is " << x/y << std::endl;
}