タグ

boostに関するmoozのブックマーク (17)

  • #4936 (cannot find boost_system-mt) – Boost C++ Libraries

    mooz
    mooz 2013/06/12
    -lboost_system-mt みたいな multithread 対応を明記する suffix は取り除かれたらしい. --layout=tagged で有効にできる.
  • Boost.MPI を使うときに知っておきたいこと - 技術夢想

    BOOST_MPI_HOMOGENIUS を定義してシリアライズを高速化 クラスター内の CPU が全部同じアーキテクチャであれば、コンパイル時に -DBOOST_MPI_HOMOGENIUS オプションを付け加えてコンパイルすると MPI_PACK, MPI_UNPACK しないでバイナリイメージのまま送ってくれるので速くなる。 非プリミティブ型の Isend に注意 Boost.MPI で複雑な型のオブジェクトを送るときには Boost.Serialization でバイナリ列にシリアライズしてから送られるようになっています。 これが何を意味するかというと、Boost::Isend というのは実はシリアライズ後のバイナリ列のサイズしか相手に送らなくて、Boost::Wait* を呼び出して Isend が終わったのを確認した後でシリアライズしたバイナリ列を送り始めます。 これを忘れてい

    Boost.MPI を使うときに知っておきたいこと - 技術夢想
    mooz
    mooz 2013/01/25
    BOOST_MPI_HOMOGENEOUS を定義すると pack / unpack なしにデータの送受信をおこなってくれるので高速
  • recursive mutex - hidemonのブログ

    mutexはスレッド間の排他処理をするための機構だが,一般的なthreadライブラリのデフォルトのmutexには大きな問題がある.あるmutexを既にlockしているthreadが再度同じmutexをlockしようとするとブロックしてしまうのだ.たとえば,thread bufferの例で,emptyを判定する部分を別メソッドにして,こちらもlockをかけるように書き直してみる. class buffer { list<int> queue; boost::condition_variable cond; boost::mutex mut; public: bool empty() { boost::lock_guard<boost::recursive_mutex> lock(mut); return queue.empty(); } ... int pop() throw(out_of_

    recursive mutex - hidemonのブログ
    mooz
    mooz 2012/02/16
    boost::mutex_recursive
  • Boost Fusion Library

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    Boost Fusion Library
    mooz
    mooz 2011/10/22
    様々な型のシーケンスが格納できるコンテナ.Compile time, Run time.
  • このBoostライブラリは、あのBoostライブラリを利用しています - 閑古鳥

    Boostのライブラリは他のBoostのライブラリを利用して実装されていることが多いです。AsioはThreadを利用していますし、MPLはその他の色々なライブラリの実装の助けになっています。そういった関係を抜き出してみました。ただの暇つぶしで特に意味はありません。まあ、生きてるサンプルコードとして使えるかもしれません。 抽出方法 Boostのライブラリはそれぞれディレクトリに分けられているので、ディレクトリ=ライブラリとして、ディレクトリ内のすべてのファイル(.hpp)を走査してincludeしているファイルを元に依存関係を抜き出しました。結構適当です。ソース(.cpp)は見ていません。 ディレクトリ単位で見ているので、Math系のライブラリなど同じディレクトリに実装があるライブラリはひとまとめにされます。 ただし、AnyとかArrayは1ファイルだったので、そういうのは一部特別扱いして

    このBoostライブラリは、あのBoostライブラリを利用しています - 閑古鳥
    mooz
    mooz 2011/06/09
    config, type_traits, mpl, utility, ...
  • shared_ptr & weak_ptr (pdf 第2版)

    2009/12/12 Boost.勉強会 プレゼン資料 ppt 第2版. 初版の明らかな不手際を最低限だけ修正. プレゼン発表の録画は http://bit.ly/6yjSkz です.Read less

    shared_ptr & weak_ptr (pdf 第2版)
    mooz
    mooz 2011/05/12
  • 逆引きリファレンス - boostjp

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    mooz
    mooz 2011/03/30
  • letsboost::progress_timer

    sample #include <boost/progress.hpp> int main() { boost::progress_timer t; unsigned int a=0; for( unsigned int i=0; i<10000; ++i ) for( unsigned int j=0; j<60000; ++j ) a += i; // 適当に時間のかかりそうな処理 return 0; } // tのデストラクタが呼び出され、ここで時間表示 出力例 2.08 s etc C++の特徴として、「自動変数はスコープが終わるところで、 デストラクタが呼び出される」というのがあります。関数のどこから return や break で抜けようが、 空の彼方へ例外で飛んでいこうが必ず呼び出されるので、 終了処理をデストラクタに任せておくと、綺麗なコードを書けることがよくあります。

    mooz
    mooz 2011/02/26
    デストラクタで経過時間を表示する
  • boost.GILで組む、ジェネリックな画像処理のアルゴリズム

    "Image dans le néant" by gelinh boost.GILは凄い!開発者の頭の良さがビシビシと伝わってくる! ということで、今回はGILに関しての紹介記事を書こうと思います。 概要 あなたは画像処理のエキスパート。顧客の依頼で、8bitのRGB画像を処理するアルゴリズムを記述していたとします。ところが対象となるデバイスの仕様を調べていた際に、実はRGBA画像にも対応させなければいけないことが分かりました。面倒だと思いながら書いていた矢先、さらにBGRやABGR,さらには16や24bitにも対応したアルゴリズムを記述しなければならないことが判明しました。なんということでしょう…これらの画像すべてに対してアルゴリズムを書くなんて、とてもじゃないですがやってられない。やめてくれ!って感じです。 boostに付いてくるGILを用いることで、画像に対する操作をよりジェネリック

    boost.GILで組む、ジェネリックな画像処理のアルゴリズム
  • A potted guide to stackless coroutines

    mooz
    mooz 2011/01/03
    boost.asio で coroutine. yield マクロ.
  • c++ - What is Boost missing? - Stack Overflow

    After spending most of my waking time on Stack Overflow, for better or for worse, I've come to notice how 99% of the C++ questions are answered with "use boost::wealreadysolvedyourproblem", but there must definitely be a few areas Boost doesn't cover, but would be better if it did. So what features is Boost missing? I'll start by saying: boost::sql (although SOCI should try to become a legal p

    mooz
    mooz 2011/01/01
    「boost にコレが欲しい」まとめ.
  • letsboost::program_options

    sample #include <iostream> #include <string> #include <boost/program_options.hpp> using namespace std; using namespace boost::program_options; int main(int argc, char* argv[]) { // オプションの設計 options_description opt("オプション"); opt.add_options() ("help,h", "ヘルプを表示") ("op" , value<string>(), "演算の種類(add,sub,mul,div)") ("lhs,L", value<int>()->default_value(100), "左") ("rhs,R", value<int>()->default_value

    mooz
    mooz 2010/12/31
  • それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C++erの雑記帳

    Boost.Optional Must Go - 野良C++erの雑記帳 Boost.Optional Must Go (2) - 野良C++erの雑記帳 最近、何回かに分けて、 Boost.Optional について、(細かい)不満を日記に書いてきました。 これは別に Boost.Optional が嫌いだから不満を書いた訳ではなく、むしろ その逆、 Boost.Optional が便利な分、逆に不満点が目立つので書いていたわけですが、 よく考えたら、 Boost.Optional の便利さを、纏まった記事で書いていないなー、 と、そう思い至ったので、この辺で Boost.Optional を徹底的に推奨する記事でも書いてみようかな、 というわけで、さんざん既出なネタばかりですが、折角なので書いてみることにしましたよ。 冒頭に挙げた以外で参考になるような記事は、この辺でしょうか: C++

    それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C++erの雑記帳
    mooz
    mooz 2010/12/27
    参照の再束縛を可能に
  • gist:22c650c292e94631bb84

    mooz
    mooz 2010/12/14
    boost の mutex. shared_lock, upgrade_lock, upgrade_to_unique_lock.
  • Chapter 3. Boost.Array - 1.45.0

    mooz
    mooz 2010/12/14
    array. heap でなく stack へ割り付け.
  • boost user - MPL

    MPL もそうとうでかいので一回で紹介しきるのは厳しそうなので、 何回かに分けて紹介できればなあ、と思います。 GameNum を MPL で書き直す template library を作る で紹介した、 GameNum ですが、 これは、テンプレートメタプログラミングの初歩の内容を含んでいたので、 MPL で書き直したらどうなるか、というのをやってみます。 まあ、最初にやってみるネタとしては適当かなあ、とか思いまして。 gamenum のシフトをコンパイルタイムに解決する部分、 template <bool equal_, bool leftLarge_, int leftShifts_, int rightShifts_> struct ConvertHelper_; template <int leftShifts_, int rightShifts_> struct Conver

    mooz
    mooz 2010/10/07
    boost mpl. コンパイルタイムでの計算.
  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

    Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.PythonC++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、PythonC++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
  • 1