Boost.勉強会#5 名古屋に行ってきました.Boost.勉強会が「Boost があるかもしれない勉強会になりつつある」と言う噂もちらほら聞きましたが,非常に濃い内容で楽しかったです.発表された方,関係者の方々いつもお疲れ様です. 以下,印象に残ったものをメモ.発表資料ほか関連リンクは,https://sites.google.com/site/boostjp/study_meeting/study5 にあります. 春のLock-Free祭り (@kumagi, id:kumagi) 意義 マルチスレッドプログラミングに置いて古典的な手法は、共有リソースにアクセスするときはロックをかけることである。ミューテックスやセマフォといった排他制御はソースコードのある領域を同時に実行しないようにし、それゆえ、共有メモリの構造を破壊しないようにする。もし、他のスレッドが事前に獲得したロックをあるスレ
io_service::postで関数を投げる。 io_serviceを一つ作ってしまえば、次々に登録していけるので楽です。 #include <iostream> #include <boost/asio.hpp> #include <boost/bind.hpp> #include <boost/thread.hpp> namespace asio = boost::asio; void background() { boost::this_thread::sleep(boost::posix_time::seconds(3)); std::cout << "end" << std::endl; } int main() { asio::io_service io_service; boost::thread t(boost::bind(&boost::asio::io_service
1. Boostライブラリ一周の旅 高橋晶(Akira Takahashi) ブログ:「Faith and Brave – C++で遊ぼう」 http://d.hatena.ne.jp/faith_and_brave/ Boost.勉強会 2009/12/12(Sat) 3. 本日紹介するライブラリ 01.Accumulators 21.Function 41.Parameter 61.Test 02.Any 22.Function Types 42.Pointer Container 62.Thread 03.Array 23.Fusion 43.Pool 63.Timer 04.Asio 24.GIL 44.Preprocessor 64.Tokenizer 05.Assign 25.Graph 45.Property Map 65.Tribool 06.Bimap 26.Interp
C++, boost, oven | 13:10CSVの中身を構造体に読み込むならもうこのコンビ一択でいいですね。data.csv ハリード,21,12,20,17,15,19,20 カイ,10,18,20,13,24,16,21 コーデリア,20,12,18,20,11,19,20 ゲラ=ハ,18,21,16,22,16,18,15 キャット,16,22,25,10,15,14,21 レッド,20,14,18,17,11,23,17 ソース #include #include #include #include #include #include #include #pragma warning(disable: 4819) // VCだと文字コードがどうとかうるさいので警告を消す #include #pragma warning(default: 4819) #incl
"Image dans le néant" by gelinh boost.GILは凄い!開発者の頭の良さがビシビシと伝わってくる! ということで、今回はGILに関しての紹介記事を書こうと思います。 概要 あなたは画像処理のエキスパート。顧客の依頼で、8bitのRGB画像を処理するアルゴリズムを記述していたとします。ところが対象となるデバイスの仕様を調べていた際に、実はRGBA画像にも対応させなければいけないことが分かりました。面倒だと思いながら書いていた矢先、さらにBGRやABGR,さらには16や24bitにも対応したアルゴリズムを記述しなければならないことが判明しました。なんということでしょう…これらの画像すべてに対してアルゴリズムを書くなんて、とてもじゃないですがやってられない。やめてくれ!って感じです。 boostに付いてくるGILを用いることで、画像に対する操作をよりジェネリック
これまで書いてきた Boost.statechart のまとめです。 まずこれまで書いたのは以下の 6 エントリです。本記事を入れて全 7 エントリとなります。 Boost.statechart 事始め Boost.statechart でイベントを受け取る Boost.statechart で状態のネストを定義する。 Boost.statechart で現在の状態を確認する。 Boost.statechart で複数状態を持つマシンを実装する。 Boost.statechart で CSV を読む。 主に参照したドキュメントはこちら。 The Boost Statechart Library 状態のモデリングは「State パターン」というそれっぽい名前がついているぐらいなのでプログラマなら誰もが一度は意識した事があるかと思います。 で、僕もご多分に漏れず状態をそれっぽく表現しようと試み
Boostに以前からread-writeロックは実装されていたようですがバグがあったとかで最近の物ではupgrade_lock, upgrade_to_unique_lockにさし変わっています。 ただのロックと比べてパフォーマンスが出やすい上に素性の良い設計だと思うので紹介してみようと思います。 read lock read-lockをする場合はshared_mutexを引数にshared_lockをかけてやればいいです。 #include <boost/thread.hpp> using namespace boost; shared_mutex mutex; void reader(){ shared_lock<shared_mutex> read_lock(mutex); // ここでロック! // クリティカルセクション } スコープを外れると同時にshared_lockのデスト
先日のグラフをGraphvizの*.dot形式で出力してみよう。 #include <fstream> #include <vector> #include <string> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/graphviz.hpp> typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int>> Graph; typedef std::pair<int, int> Edge; enum { A, B, C, D, E, N }; const std::string name = "A
With the exceptions noted below, this work is licensed under a Creative Commons Attribution - NonCommercial - NoDerivatives 4.0 International License. Visit https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en to view a copy of the full license. Exceptions: The Boost C++ logo is the property of the Boost C++ developers and is used here with their permission. With the exception of the Boost C+
iPhone で Boost が使えます。 現状、バージョン 1.40.0 で、以下のライブラリを実機で動作確認できました。 filesystem test < ビルド方法> (1) Boost をダウンロードしてくる。 http://www.boost.org/ の DOWNLOADS にあります。 (2) ダウンロードしてきたファイルを解凍 (3) (2)で解凍したファイルのルートディレクトリに移動 (4) Xcode 用のプロジェクトファイルを生成するために、以下のコマンドを順番に実行する。 $ cmake -GXcode . $ cmake -DCMAKE_IS_EXPERIMENTAL=YES_I_KNOW . (4) ルートディレクトリに Boost.xcodeproj が出来ているので実行 (5) ビルド設定をする 「プロジェクト」→「プロジェクト設
参考 http://d.hatena.ne.jp/syou6162/20090410/1239328354 http://www.kmonos.net/alang/boost/classes/filesystem.html main.cpp #include <iostream> #include <boost/filesystem/operations.hpp> #include <boost/filesystem/path.hpp> #include <boost/filesystem/fstream.hpp> using namespace std; using namespace boost; namespace fs = boost::filesystem; int main(void) { string pt = "/Users/sho/"; fs::path path = c
Main All Broadcasts | Videos Upcoming | Mobile Categories All | Entertainment Sports | Animals Music | How-to Gaming | Religion Events | Technology News | 24/7 Help & Info Help Center | Live Help Terms of Service Privacy Policy Copyright Policy Safety Tips Ustream Watershed | About Us Our Blog | Press Contact | Developers Jobs | Message Board Mobile App | Media Kit Network Us Twitter
参考: http://d.hatena.ne.jp/faith_and_brave/20100201/1264997004 「C++0xになると、C++03 でごちゃごちゃした部分がだいぶすっきり書けるようになる」 らしいですが、C++0xを待たなくてもBoostを使えばだいぶすっきり書けるので、 BoostでのC++入門はこんな感じだよー、という気持ちで以下略。 この記事はC言語をある程度理解していることが前提です。 1. Hello World C++/Boostでの出力はC++標準の IOStream ライブラリと Boost.Format を組み合わせて行います。 例として、C言語のprintfを用いた Hello World を、C++/Boostを使って書き直してみます。 #include <stdio.h> int main() { printf( "%s\n", "Hell
Pimpl.zip Version 1.13. Pimpl idiom generalization. Linux and VS2005. Support for value and pointer semantics. Support for boost::serialization. Support for separate -- interface and implementation -- class hierarchies as described in the GoF for the Bridge pattern. Support for internal (implementation) run-time polymorphism (Non-Virtual Interface Idiom). Tutorial. Doxygen-generated docs.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く