タグ

c++とboostに関するharu-sのブックマーク (18)

  • [Boost-users] boost::asio connect_timeout example problem.

    Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message I am having a timeout example code problem, modified code is below:class connect_handler { public: connect_handler(io_service& ios) : io_service_(ios), timer_(ios), socket_(ios) { socket_.async_connect( tcp::endpoint(boost::asio::ip::address_v4::loopback(), 32123)

    haru-s
    haru-s 2011/03/24
    boost.asioでタイムアウトを設定
  • C++, boost::thread : スレッドの同期と排他制御 – mutex、conditionクラス

    複数のスレッドから1つの変数にアクセスする際、システム側のスレッドスケジューリング次第で、予期せぬ書き換えが起こってしまう場合があります。その為、ある1つのスレッドが変数にアクセスしている際は他のスレッドをブロックする排他制御やスレッドの同期を行う必要があります。C++Javaのsynchronizedメソッド/ブロックと同じような記法でクリティカルセクションを実装する方法の1つにboost::threadライブラリのmutexとconditionクラスがあります。 mutex クラスの使い方 スレッドの排他制御を実現できます。具体的な使い方は、mutexインスタンスをmutex::scoped_lockクラスのコンストラクタの引数に指定し、そのインスタンスを取得することでロックをかけられます。あるスレッドが上の処理を以ってmutexインスタンスにロックをかけた場合、その他のスレッドは再

    C++, boost::thread : スレッドの同期と排他制御 – mutex、conditionクラス
  • Boost.勉強会#3で適当なことをしゃべってきました - デ-mk6

    私の発表資料: http://www.slideshare.net/digitalghost/preprocesstime-lambda-expression ソース: http://patch-tag.com/r/digitalghost/pplambda/home , http://sites.google.com/site/ilikemanaka/code/pplambda.tar.bz2 あぁどうしよう。今回は大阪開催なので旅程がなくて書くことがないのであった。終わり。 などというだけではあんまりなので、まぁ千里中央の地形はやばいですね。前にも第一回GC勉強会のときに行きましたが、会場の建物に入るまでやっぱり迷いました。地上なのにぐぐる地図が役に立たないというすばらしい地形ですね。あと誰も御堂筋線が地下鉄だと信じてくれないのですが、一つ誤解があって、御堂筋線は新大阪以北だと江坂まで

    Boost.勉強会#3で適当なことをしゃべってきました - デ-mk6
    haru-s
    haru-s 2010/10/26
    「だからまぁ、送出側と捕捉側を分離できる仕組みがあればいいですねという話です。」
  • Boost minimal test - Faith and Brave - C++で遊ぼう

    は、Boost.Testライブラリのビルド不要で使用できる小さなテストライブラリとなっています。 #include <vector> #include <boost/test/minimal.hpp> int test_main(int argc, char* argv[]) { std::vector<int> v; BOOST_CHECK(v.empty()); BOOST_REQUIRE(v.size() == 0); return 0; } **** no errors detectedminimal testで用意されているのは以下の4つ: BOOST_CHECK(predicate) : 条件式を引数にとり、失敗時でもテストを続行します。 BOOST_REQUIRE(predicate) : こちらは、失敗時に例外を投げてテストを終了するので、失敗したら続行不可能なケースで使用

    Boost minimal test - Faith and Brave - C++で遊ぼう
    haru-s
    haru-s 2010/10/20
    これは便利そう
  • boost::timerを使って1行コードを挟むだけで経過時間計測 - 凹みTips

    boost::timerはCの標準ライブラリのclock()を使って簡単に時間計測をしてくれる便利なクラスです.基的な使い方は,以下のようになります. #include <iostream> #include <boost/timer.hpp> #include <windows.h> // Sleep用 int main() { boost::timer t; // タイマーの開始 Sleep(1234); std::cout << t.elapsed() << " sec" << std::endl; // 1.234 sec t.restart(); // タイマーのリセット Sleep(2345); std::cout << t.elapsed() << " sec" << std::endl; // 2.344 sec return 0; } elapsed(訳:経過した)でイ

    boost::timerを使って1行コードを挟むだけで経過時間計測 - 凹みTips
  • shared_ptrまとめ - while( c++ );

    語ドキュメントshared_ptr、weak_ptr boost勉強会http://www.ustream.tv/recorded/2981654 Smart Pointer Programming Techniques 実装してみた shared_ptrの実装1 - while( c++ ); shared_ptrの実装2 - while( c++ ); shared_ptrの実装3 - while( c++ ); shared_ptrの実装4 - while( c++ ); boost::shared_ptrっぽく。 shared_ptrの実装5 - while( c++ ); shared_ptr< void >を可能にする。 shared_ptrの実装6 - while( c++ ); 適当なクラス図とか。 shared_ptrの実装7 - while( c++ ); dele

    shared_ptrまとめ - while( c++ );
    haru-s
    haru-s 2010/09/01
    まとめ
  • C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳

    参考: 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

    C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳
  • Ideone.com | nnuxd

    haru-s
    haru-s 2010/08/01
    shared_ptr
  • Boost.SmartPtr:shared_ptr + weak_ptr(Cryolite), 2009/12/12 Boost.勉強会 phpstudy on USTREAM. Conference

    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

    haru-s
    haru-s 2010/07/26
    何で俺これ知らないの?
  • 今更ながらに Boost.SmartPointers を考える - 野良C++erの雑記帳

    Smart Pointers というか主に shared_ptr ですが(scoped_ptr のこともたまには思い出してあげてね!)。 恐らくは散々ガイシュツなネタですが、まー「検索するのが面倒だ」って人の手助けになればいいかと思います。僕も検索するの面倒ですし。 というかこの記事書いてるときもロクに検索してないです。間違いとかあったらすみません。 疑問点とか有りましたら、自分で調べるか、あるいは僕に知らせてもらえると助かります。では、始めましょう。 [最終更新] 応用例にカスタムアロケータでの参照カウント管理を追加: 09/12/16 基的な使い道 まず基的なことについては、僕が説明するより、この動画を参照した方が速いでしょう: http://www.ustream.tv/recorded/2981654 それに対するついったーでの突っ込み: http://kiwofusi.sa

    今更ながらに Boost.SmartPointers を考える - 野良C++erの雑記帳
    haru-s
    haru-s 2010/07/17
    大事/shared_ptr/make_shared
  • 固定長データの解析 - Faith and Brave - C++で遊ぼう

    "123Akira25" のような固定長データを解析する処理を考えます。 まず、簡単なところではbasic_string::substr()を使う方法があります。 #include <string> int main() { const std::string s = "123Akira25"; const std::string id = s.substr(0, 3); const std::string name = s.substr(3, 5); const std::string age = s.substr(8); // s.substr(8, 2)でもいいけど「残り全部」という意図 } これはうっかりミスが多いので、オフセットを最初に定義しましょう。 #include <string> int main() { const std::string s = "123Akira25

    固定長データの解析 - Faith and Brave - C++で遊ぼう
    haru-s
    haru-s 2010/07/06
    どんどん長くなる件^^;
  • melt日記 - 2008年3月28日 Entries

    Boost に正式に入るのかどうか知りませんが、Boost.Coroutine というのがあります。 C# で言う yield のようなものですが、ステートマシンに置き換えているわけではなく、内部でコンテキストを切り替えているだけのようです。 で、Boost.Coroutine のサンプルを見てみましたが、超面白そうです。 class range_generator { public: typedef int value_type; range_generator(int min, int max) : m_current(min), m_max(max) {} range_generator() : m_current(-1), m_max(0) {} int operator*() { return m_current; } range_generator& operator++()

    haru-s
    haru-s 2009/06/05
    boost.coroutine面白そう
  • C++, boost::thread : スレッドの生成と実行

    C/C++でスレッドを扱う場合は、プラットフォームによって使用するライブラリが違います。 Windows なら Windows API の thread で、 UNIX や Linux 系ならば pthread ライブラリ等を使用します。プラットフォーム依存するコードは可搬性に難があり、解決策の1つとしてプリコンパイルで依存部分をプラットフォームに合わせたライブラリを選択してコンパイルする方法があります。 boost ライブラリの boost::thread は、上のような処理をラップして共通のインターフェイスとして実装されています。 boost/thread.hppの一部 #if defined(BOOST_THREAD_PLATFORM_WIN32) #include <boost/thread/win32/thread.hpp> #elif defined(BOOST_THREAD_

    C++, boost::thread : スレッドの生成と実行
  • format 作ってみた(Boost っぽい) - Faith and Brave - C++で遊ぼう

    こんな感じで使えます #include <string> #include <shand/format.hpp> using namespace std; using namespace shand; int main() { // printf風 string str1 = format("Hello %05d %s %f") % 3 % "abc" % 3.14; // プレースホルダー(Boost.Format風) string str2 = format("Hello %1% %2% %3%") % 3 % "abc" % 3.14; // プレースホルダー(C#風) string str3 = format("Hello {0} {1} {2}") % 3 % "abc" % 3.14; // wstring版 wstring wstr = wformat(L"Hello %05

    format 作ってみた(Boost っぽい) - Faith and Brave - C++で遊ぼう
    haru-s
    haru-s 2008/04/17
    boostよりいいのかも
  • 2004-10-29

    1昨日ブログで書いたことをコードで示すとこんな感じになります. #include <fstream> #include <locale> // Boost 1.32.0からBOOST_ROOT/boost/utf8_codecvt_facet.hppと // BOOST_ROOT/libs/serialization/src/utf8_codecvt_facet.cppを // 掘り出してきてカレントにコピーしてます. // あとcppファイル中のutf8_codecvt_facet.hppへのincludeパスを書き換えてます. #include "utf8_codecvt_facet.hpp" int main() { using namespace std; locale::global(locale("")); wofstream fs("test.txt"); bool is_u

    2004-10-29
  • Boost.Fusion を使ってみた - Faith and Brave - C++で遊ぼう

    Boost.Fusion は、MPL をバリバリ使える Tuple (でいいのかな) #include <iostream> #include <string> #include <boost/fusion/sequence.hpp> #include <boost/fusion/include/vector.hpp> using namespace std; using namespace boost::fusion; int main() { boost::fusion::vector<int, double, string> t(3, 3.14, "Akira"); cout << at_c<0>(t) << endl; // 3 cout << at_c<1>(t) << endl; // 3.14 cout << at_c<2>(t) << endl; // Akira retu

    Boost.Fusion を使ってみた - Faith and Brave - C++で遊ぼう
  • はてなブログ | 無料ブログを作成しよう

    引越し遍歴パートⅡ 2018年に「上京して10年で引越しを6回した」というブログを書いた。 月日は流れ、あれから6年…さらに2回の引越しをした。ホテル暮らしも含めると3回かもしれない。 前回の記事では主に神奈川〜千葉〜東京の引越し事情を書いた。関東の浅瀬でちゃぷちゃぷ遊んでいたに過…

    はてなブログ | 無料ブログを作成しよう
  • Visual C++でのBoostライブラリのビルド方法

    Dashboardから簡単にイジェクト。 イジェクトキーがなくとも。 CD/DVDドライブを複数接続していても。 詳しくはこちら。 Visual C++でのBoostライブラリのビルド方法 最終更新日:2008年3月30日 概要 Boostライブラリはオープンソースで提供されるC++のライブラリで、便利な機能を提供してくれるものです。このドキュメントではBoostライブラリをビルドする方法を紹介します。なお、Boostライブラリはビルドしなくとも使える機能も多々あり、FileSystemなどのいくつかのライブラリを使う場合にビルドが必要となります。 バイナリ形式のライブラリは無いのか? Boostライブラリは無理にソースからビルドしなくともバイナリ形式でも入手することが出来ます。しかし、現時点ではVisual Studio 2008 (Visual C++ 9.0)に対応したバージョンはS

  • 1