新しく追加されたライブラリ。
- Atomic: C++11-style atomic<> from Helge Bahmann, maintained by Tim Blechmann.
- Coroutine: Coroutine library, from Oliver Kowalke.
- Lockfree: Lockfree data structures, from Tim Blechmann.
- Multiprecision: Extended precision arithmetic types for floating point, integer and rational arithmetic from John Maddock and Christopher Kormanyos.
- Odeint: Solving ordinary differential equations, from Karsten Ahnert and Mario Mulansky.
試しに boost::coroutine 使おうと思ったら boost::context の make_fcontext と jump_fcontext がアセンブラでシンボルエクスポートされてなさげ。普段は masm にパスを通しているのだけど、どうやら VC 付属の ml じゃないと駄目らしい。
気付くまでハマった。。。
ようやく動くようになった。
#include <boost/coroutine/coroutine.hpp>
int
main(){
typedef boost::coroutines::coroutine<std::string()> ctype;
ctype
c([] (ctype::caller_type &yeild) {
for (int i = 0; i < 10; i++){
yeild(i % 2 == 0 ? "フル" : "チン\n");
}
});
while(c) {
std::cout << c.get();
c();
}
return 0;
}
実行結果
フルチン
フルチン
フルチン
フルチン
フルチン
ブーストフルーチンでは無いので注意。