タグ

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

  • 変電工 - Google C++スタイルガイド日本語訳

  • 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

    kuenishi
    kuenishi 2008/07/06
    coding conventionのようなものか
  • moratorium | tbb::parallel_sort

    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 - 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

  • M17 リリースノート

    kuenishi
    kuenishi 2008/04/30
    glibc >= 2.1 ならdlopenなどのdl*はスレッドセーフ。
  • C++テンプレートでFizzBuzz - おびなたん☆

    これは、1月20日に北海道にて行われた日野望の会で披露したネタのまとめと解説のエントリーです。 そもそも こんなしょーもないネタを思いついたのは、このブログの昨年の検索キーワードトップ3が C++ FizzBuzz テンプレート だったから。それぞれのキーワードについては、 C++ - Wikipedia Fizz Buzz - Wikipedia テンプレート(プログラミング)- Wikipedia あたりを見てちょうだい。 特に、会場には「テンプレートって知らなーい」って人が2,3人いたのでテンプレートについてちゃんと説明したかったのですが、いかんせん時間が足りなすぎでした。テンプレートをまじめに語るとが一冊書けてしまうので、端折りました。当然、ここでも端折ります。 上述のリンク先とかを見るか、テンプレートをまじめに語ったを一冊読んでくだせえ。 とりあえず、おいらのFizzBuz

    C++テンプレートでFizzBuzz - おびなたん☆
    kuenishi
    kuenishi 2008/04/19
  • cmagazine.jp | Just another WordPress site

    すごい視聴率だと話題になっていたコンビニの経営を観たら、出演している加盟店のファンになってしまったんです。そこで自分も地元香川でフランチャイズ加盟をしてコンビニを経営してみたいなと思うようになりました。 https://www.sej.co.jp/owner/area/market/kagawa.php >>Read more

    kuenishi
    kuenishi 2008/04/11
  • ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-

    前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹

  • libpqxx(PostgreSQLの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

  • c++ pointers suck [c++] [types] [pointers] [incomplete]

    kuenishi
    kuenishi 2008/02/25
    何がsucksなのか分からないが、うちのg++の4では正常
  • mpioで作るメモリキャッシュサーバー - Blog by Sadayuki Furuhashi

    高速なイベント駆動IOライブラリ mpioがそこそこ動くようになったので、ちょっとサンプルプログラムを作ってみました。 memcachedプロトコルと互換性のあるメモリキャッシュサーバーだったりするとカッコイイと思ったのですが、即席なので全然関係ないメモリキャッシュサーバーになりました>< バイナリベースのプロトコルで、キーと値をセットするsetと、キーに対応する値を取ってくるgetと、キーを削除するdeleteができます。Linux(IO多重化はepoll)とMac OS X(select)で動くことを確認しました。 ソースコード:iosample.tar.gz …ちなみに、このプログラムにはバグがあります。構造体をそのままソケットに送りつけているのですが、構造体のアラインメントを考慮していません。ダメダメです。あとクライアントの実装がヘタレすぎるとか…そのあたりキリが無いですがご勘弁を

    mpioで作るメモリキャッシュサーバー - Blog by Sadayuki Furuhashi
    kuenishi
    kuenishi 2008/02/20
  • lambda@C++0x - 値か参照か,それが問題だ - Cry's Blog

    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 であ

    lambda@C++0x - 値か参照か,それが問題だ - Cry's Blog
  • Standard Template Library プログラミング on the Web

    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

    kuenishi
    kuenishi 2008/02/07
    stl本の電子化
  • 高速なイベント駆動IOライブラリ mpio - Blog by Sadayuki Furuhashi

    まだまだ未完成で半分アイディアだけなのですが、なかなか進まないのでとりあえず公開してみます。CodeRepos:/lang/c/mpio/trunk/mp いわゆるlibeventのようなものなのですが、C++で書かれていて、より使いやすく、より最適化が効きやすいようになっています。 以下のような特徴があります(目指しています)。 オーバーヘッドの少ない低水準レイヤー、使いやすい高水準レイヤーという形でレイヤー構造になっている better Cなコードにもある程度なじむ メモリ管理機能を内蔵している ヘッダファイルをincludeするだけで使える(ライブラリをリンクしなくて良い) ライブラリ自体のコードが短く、モジューラブル 低水準なレイヤーから順に、mp::event、mp::dispatch、mp::io、mp::asioがあります。 mp::event OS依存のIO多重化システムコ

    高速なイベント駆動IOライブラリ mpio - Blog by Sadayuki Furuhashi
  • 再帰したっていーぢゃん

    目次 ホーム 連絡をする 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によるテスト駆

    kuenishi
    kuenishi 2008/02/06
    primary number
  • gccで定義されているマクロを見る

    % 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 となっている.

  • yunoの雑記帳 - gcc/attribute

    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

  • Attribute Syntax (Using the GNU Compiler Collection (GCC))

    kuenishi
    kuenishi 2008/01/14
  • gcc attribute overview

    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.

    kuenishi
    kuenishi 2008/01/14
  • RAIIもどき in C __attribute__((cleanup(fn)))

    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

    RAIIもどき in C __attribute__((cleanup(fn)))
    kuenishi
    kuenishi 2008/01/14