2011-01-01から1年間の記事一覧
はじめに 本記事は Ariel Advent Calendar 2011 : ATND の11日目です。12日にオーバーランしてますが、11日目です。ごめんなさい。 ぷろぐらみんぐ言語ありえる まずは定番のHello worldをありえるで書いてみましょう。 ありえるありありえるありありえるあ…
はじめに 本記事は partake.in 7日目です。 stable_vector Boost 1.48からBoost.ContainerというSTL互換のコンテナライブラリが採用されました。基本的にはboost::container::vectorやboost::container::stringといったSTL互換のクラスが提供されていますが…
始めに 本記事は C++11 Advent Calendar 2011 : ATND の6日目です。 std::thread C++11時代のthreadの基本は std::thread です。おもむろに #include をしましょう。std::threadはコンストラクタで渡された関数オブジェクトを別スレッドで実行します。 #incl…
手作業だとめんどくさいし、間違えそうだということでlibclangを使ってみました。こんなファイルstub.cを用意して、 #include <mpi.h> mpi_extractorに食わせると、MPI関数の名前、返り値の型、引数の型がCSVで出力されます。 $ ./mpi_extractor stub.c MPI_Abort,i</mpi.h>…
Linux環境下でのBoost.Asioは、標準でepoll_reactorを使用します(AsioではIO多重化を行うクラスをreactorと呼んでいます)。しかしながら、epollは登録できるfile descriptorの種類がselectよりも狭いという仕様上の問題があります。例えばファイル(regular f…
夏休みはもう終ってしまいましたが、bjamはたまーに使っています。 C++のソースコードをコンパイルするだけなら、bjamは最短なのではないでしょうか。 …と思いましたがmake最短ですね…。 boost使いたいです 3日目に書いた方法でboostを使ってもいいのですが…
0xの使い方やライブラリ回りは、プロのbjammerことid:Flast先生に教えてもらいました。 複数のソースから1つの実行ファイルを作りたい 単に依存関係を並べればいいようです。Jamroot: exe a : a.cpp b.cpp ;$ $BOOST_ROOT/bjam release ...found 13 targets.…
1日目と同日公開ですが、2日目です。はい。デフォルトのvariantがdebugなので、ぼーっとしてると遅いバイナリを作ってしまいそうで怖いですね。3日目に続くかは謎です。 variantオプション bjamはデフォルトでdebugモードでビルドされます。ビルドモードを変…
bjamが欲しいので、まずはboostをダウンロードして展開し、bjamをビルドします。そして、boostを展開したディレクトリをBOOST_ROOT環境変数に定義しておきます。BOOT_ROOTはbjamの動作上も必要です。 $ export BOOST_ROOT=/path/to/boost $ cd $BOOST_ROOT $…
僕はかなりはまったのですが、ZeroMQのcontextはfork(2)で複製できません。以下のようなコードを書くと死にます。forkする前にcontextを破棄するか、preforkしておく必要があります。URLを忘れたのですが、MLでもpreforkしておいてよみたいな流れだったので…
phoenix::letの中で、引数(_1, _2, arg0, arg1系)は参照できず、コンパイルエラーになります。になって、引数がどっかにいってしまう。">*1この挙動はとても不便ですが、仕様としてこうなのか、実装がバグっていてこうなっているのかはわかりません。 void f…
Boost.ArchiveのMessagePackバックエンドに用いた実装です。まだ試作段階ですが、Boost付属のSerialization用テストは一通り合格しているので、とりあえず動くと思います。ソースコードはgithubにあります。なお、ビルドツールはwafを使用しているため、ビル…
clang のコンパイラではなく、ライブラリの方で遊んでみた。使用した clang(+LLVM) のバージョンは Subversion レポジトリより取得した r127064 。ちょっと古いが気にしない。clangのライブラリの方のドキュメントが見つけられなかったので、主にclang tutor…
Boost.勉強会 #4 : ATND で発表してきました。資料は Boost.勉強会#4 Boost.Proto にあります。他の方の発表資料については、id:thincaさんがいい感じにまとめてくれています。感謝。さて、僕はBoost.Protoネタで発表をしてきたわけですが、前半後半と分けた…