タグ

c++とC++に関するdreammindのブックマーク (10)

  • 2010-12-27

    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のデスト

    2010-12-27
  • iostateとiostreamのエラー処理 - ntnekの日記

    あるプログラムでは、ifstreamとistringstreamを利用している。で、このプログラムをg++とVC++(.NET2003)でビルドして使っている。そこにあるストリームをべさせたところ、istringstream + VC++の場合のみ不都合が起きた。ios::eof()が拾えないのだ。 while (! ins.eof()) { ... ins.read(buf, size); if (ins.eof()) break; ... } のようなプログラムは当然のように無限ループに陥った。 はて。 例えば、こう書けば、無限ループには成らない: while (ins) { ... ins.read(buf, size); if (! ins) break; ... } …のだけれど、ではこのループからの脱出はEOFによるものなのだろうか、それとも何らかのエラーだろうか? std:

    iostateとiostreamのエラー処理 - ntnekの日記
  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o

  • jnaerator - Project Hosting on Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • http://www.innowhere.com:8080/webapp/jsp/products/jnieasy/index.jsp?_page=products.jnieasy

  • Thread Base MapReduce - moratorium

    Thread Base MapReduce 2007-01-09 (Tue) 0:29 Uncategorized 並列計算フレームワークを作っている人を見てたら自分もなんか作りたくなって来たので、スレッドベースでGoogleMapReduceを真似て見ました。1マシン用のMapReduceといった所ですかね。 以下にソースコードが有ります。適当に煮るなり焼くなりしてください。 ソースコード ワードカウントが以下のようなコードで記述できます。 [code] class WordCounter : public Mapper { public: virtual void Map(const MapInput& input) { string text = input.value(); istringstream iss(text); string word; while

  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • omakeでC++プログラムをコンパイルする覚え書き - tuedaの日記

    omakeがなかなか良さそうなので試しに使ってみながらTIPSを書いていく。 ホームページはここ。 http://omake.metaprl.org/index.html makeの何が悪いか 複数のディレクトリをまたぐプロジェクトで死ねる とにかく使いにくい! コンパイラに渡しているオプションが不明瞭 当に-DOPTIMZE=SIMDでコンパイルしたか!? 依存関係の解析がアホ そのままだとヘッダーの修正を検出してくれない。いきおい念のためmake clean連発 omakeの何が良いか? どこからでもomakeできる OMakerootのあるディレクトリの下なら、どこからでもomakeできる 依存関係の解析が強力 何もしなくてもヘッダーファイルの修正を検出する インクリメンタルなコンパイル デーモンモードというのがあって常駐しつつファイルの変更を検出して自動でコンパイルが走る。これは

  • Eclipse CDTメモ

    組み込み環境向けなど従来GNU Compilerに独自ツールを追加していた開発の世界に徐々にEclipse CDTが浸透してきています。GNU C/C++コンパイラを使う開発環境ではEclipse CDTが今注目されています。 CDTは、Eclipseのプラグインの1つで、C/C++開発用の主要機能を提供するものです。 目次 Eclipse CDTバージョンと機能の整理バージョン新機能Eclipse CDT 5.0の新機能Eclipse CDT 4.0の機能インストールCentOS 5 x86の場合Eclipse 3.2Eclipse 3.3Eclipse 3.4プロジェクト機能ディレクトリ構成ワークスペース(workspace)プロジェクトCDTが生成するMakefile伝統的なC/C++ディレクトリ構成を取るには・・・Eclipse CDTが想定するディレクトリ構成に合わせるか、Ecl

  • STLアルゴリズム練習帳

    STLアルゴリズム練習帳 by iijima ■要素のソート(1) sort, stable_sort / list::sort STLではいくつかのソートのアルゴリズムが提供される. ここでは,sort と stable_sort をとりあげる. 関数プロトタイプ: void sort( RandomAccessIterator beg, RandomAccessIterator end ); void sort( RandomAccessIterator beg, RandomAccessIterator end, BinaryFunc op ); void stable_sort( RandomAccessIterator beg, RandomAccessIterator end ); void stable_sort( RandomAccessIterator beg, Rand

    dreammind
    dreammind 2008/12/09
    [sort] [降順]
  • 1