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
tbb::parallel_sort oxyたんがstd::sort速くなったらいいなあと呟いていたので、Intel TBBを試してみた。 id:nishidakeisukeさんも最近書かれていましたね。 - インテル スレッディング・ビルディング・ブロック オライリーの本自体は4月ぐらいに読み終わっていたのだが、実際に試してなかったので試してみた。 ダウンロードして来てビルド。 pficore% wget "http://www.threadingbuildingblocks.org/uploads/77/111/2.1/tbb21_20080605oss_src.tgz" pficore% tar vzxf tbb21_20080605oss_src.tgz pficore% cd tbb21_20080605oss/ pficore% make pficore% sudo make
Thread Base MapReduce 2007-01-09 (Tue) 0:29 Uncategorized 並列計算フレームワークを作っている人を見てたら自分もなんか作りたくなって来たので、スレッドベースでGoogleのMapReduceを真似て見ました。1マシン用のMapReduceといった所ですかね。 以下にソースコードが有ります。適当に煮るなり焼くなりしてください。 ソースコード ワードカウントが以下のようなコードで記述できます。 [code] class WordCounter : public Mapper { public: virtual void Map(const MapInput& input) { string text = input.value(); istringstream iss(text); string word; while
これは、1月20日に北海道にて行われた日本野望の会で披露したネタのまとめと解説のエントリーです。 そもそも こんなしょーもないネタを思いついたのは、このブログの昨年の検索キーワードトップ3が C++ FizzBuzz テンプレート だったから。それぞれのキーワードについては、 C++ - Wikipedia Fizz Buzz - Wikipedia テンプレート(プログラミング)- Wikipedia あたりを見てちょうだい。 特に、会場には「テンプレートって知らなーい」って人が2,3人いたのでテンプレートについてちゃんと説明したかったのですが、いかんせん時間が足りなすぎでした。テンプレートをまじめに語ると本が一冊書けてしまうので、端折りました。当然、ここでも端折ります。 上述のリンク先とかを見るか、テンプレートをまじめに語った本を一冊読んでくだせえ。 とりあえず、おいらのFizzBuz
前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹
PostgreSQLのC言語用ライブラリはlibpqで、C++用のライブラリはPostgreSQL7.3からlibpqxx、それ以前はlibpq++という名前だったようです。libpqは割とドキュメントやサンプルが豊富ですが、libpqxxはPostgreSQLのドキュメントからは分離しておりサンプルが少なかったので使ったときのメモ。 ダウンロードはlibpqxxのサイトから。インストールは解凍して./configure, make, make installで問題なし。PostgreSQLは8.1.4、libpqxxは2.6.8。 libpqxxのチュートリアルには動くコードが見当たらず、ソースの中のtest/test000.cxxなどがサンプルになる。 コンパイルがそのままでは通らなかったので以下のコマンドを打つことになりました。 $ export PKG_CONFIG_PATH=/u
高速なイベント駆動IOライブラリ mpioがそこそこ動くようになったので、ちょっとサンプルプログラムを作ってみました。 memcachedプロトコルと互換性のあるメモリキャッシュサーバーだったりするとカッコイイと思ったのですが、即席なので全然関係ないメモリキャッシュサーバーになりました>< バイナリベースのプロトコルで、キーと値をセットするsetと、キーに対応する値を取ってくるgetと、キーを削除するdeleteができます。Linux(IO多重化はepoll)とMac OS X(select)で動くことを確認しました。 ソースコード:iosample.tar.gz …ちなみに、このプログラムにはバグがあります。構造体をそのままソケットに送りつけているのですが、構造体のアラインメントを考慮していません。ダメダメです。あとクライアントの実装がヘタレすぎるとか…そのあたりキリが無いですがご勘弁を
http://shinh.skr.jp/m/?date=20080213#p02 今の lambda@C++0x の提案は bind を作成する + bind に渡す関数の定義を inline に書ける,という理解でだいたいよいと思う.ので,「必要なものだけ boost::bind かそれに類するものにぶちこんで持ち運ぶ」のはまったくその通りだと思うのだけれど,恐らく最大の争点は「どうぶち込むのか」,つまり 値 (のコピー) でぶち込む,なのか 参照でぶち込む,なのか とゆ〜. 値のコピーでぶち込んだ場合 vector<int> v; //... int sum = 0; // v の要素の和を sum に代入したい for_each(v.begin(), v.end(), <>(int i)(sum += i;)); // lambda 定義内の sum は environment であ
1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat
まだまだ未完成で半分アイディアだけなのですが、なかなか進まないのでとりあえず公開してみます。CodeRepos:/lang/c/mpio/trunk/mp いわゆるlibeventのようなものなのですが、C++で書かれていて、より使いやすく、より最適化が効きやすいようになっています。 以下のような特徴があります(目指しています)。 オーバーヘッドの少ない低水準レイヤー、使いやすい高水準レイヤーという形でレイヤー構造になっている better Cなコードにもある程度なじむ メモリ管理機能を内蔵している ヘッダファイルをincludeするだけで使える(ライブラリをリンクしなくて良い) ライブラリ自体のコードが短く、モジューラブル 低水準なレイヤーから順に、mp::event、mp::dispatch、mp::io、mp::asioがあります。 mp::event OS依存のIO多重化システムコ
目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 26215 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++・C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆
% echo | gcc -v -E -dM - #define __DBL_MIN_EXP__ (-1021) #define __FLT_MIN__ 1.17549435e-38F #define __CHAR_BIT__ 8 #define __WCHAR_MAX__ 2147483647 #define __DBL_DENORM_MIN__ 4.9406564584124654e-324 ... MacOS Xの場合, #define __APPLE__ 1 と定義されていて,エンディアンは, #define __BIG_ENDIAN__ 1 となっているか, #define __LITTLE_ENDIAN__ 1 となっている.
gcc4.1の__attribute__のメモ。 関数属性 † __attribute__((alias("name"))) 関数を他の関数のエイリアスにする。 void foo() __attribute__((alias("bar"))); __attribute__((always_inline)) 最適化がオフのときでも、関数をインライン展開する。 __attribute__((flatten)) 関数のサイズやインライン化パラメータを無視して、常にインライン展開する。 __attribute__((cdecl)) 386専用。 __attribute__((const)) 関数に副作用がなく、戻り値が引数のみに依存すると仮定する。 __attribute__((constructor)) 関数がmainに入る前に自動的に呼ばれるようにする。 __attribute__((dest
function attributes -- type attributes -- variable attributes This list was automatically generated from the GCC documentation. It lists documented GCCs function, type and variable attributes (__attribute__) together with the GCC versions the attribute was found in. Versions used: Major - minor version used. 2.0 - 2.0 2.1 - 2.1 2.2 - 2.2.2 2.3 - 2.3.3 2.4 - 2.4.5 2.5 - 2.5.8 2.6 - 2.6.3 2.7 - 2.7.
gccの__attribute__((cleanup(fn))) が便利すぎる件について。 C++でコードを書くときは、RAIIとか呼ばれているイディオムを使えば、ご存じの通り、ロックしたmutexを手動で開放する必要もないですし、newしたオブジェクトを手動でdeleteする必要もないです。 void Baz::boo() const { boost::mutex::scoped_lock lock(mutex); // ... return; // lock変数のデストラクタで自動開放。手動での開放不要 }でもC言語だと、当然ながら手動で開放しないといけません。複数箇所でreturnしている場合など、タイプが面倒臭すぎ。 int foo() { pthread_mutex_lock(&mutex); // ... if (hogehoge) { pthread_mutex_unlock
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く