Boost.Signals2 で呼ばれる関数に優先順位を付ける
signal::connect の第一引数に優先順位(デフォルトは int 型)を渡すことで呼び出し順を設定することが出来ます。
[ソース]
#include <boost/signals2/signal.hpp> #include <boost/lambda/lambda.hpp> #include <iostream> int main(){ namespace lambda = boost::lambda; boost::signals2::signal<void()> sig; sig.connect(1, std::cout << lambda::var(", World!!\n")); sig.connect(std::cout << lambda::var("... and good morning!\n")); sig.connect(0, std::cout << lambda::var("Hello")); sig(); return 0; }
[出力]
Hello, World!! ... and good morning!
こんな感じ。
優先順位を渡した方が渡されなかったよりも優先して呼ばれます。
[boost]
- ver 1.47.0