タグ

c++に関するkazuhookuのブックマーク (22)

  • StringPiece というライブラリの話 - 兼雑記

    例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, string* out) { out->clear(); out->append(dir); out->push_back('/'); out->append(base); }なんてのを書くんじゃないかと思います。この関数で問題になるのは const char* を渡すと不要な string object が一度できることで、敬虔な C++ 屋さんだと、 void JoinFilePathStr(const string& dir, const char* base,

    StringPiece というライブラリの話 - 兼雑記
  • MessagePack-RPC for C++ テクニカルプレビュー - Blog by Sadayuki Furuhashi

    バイナリシリアライズ形式 MessagePack をプロトコルに利用したRPCライブラリ MessagePack-RPC の、C++版を開発しています。 以前に MessagePack-RPC for Ruby について 54行で実装する分散KVSや140行で作る分散リアルタイム検索エンジンを紹介しましたが、そのC++版です。 大まかな設計はRuby版と同じで、Ruby版と同じような使い勝手で利用できます。 しかしRuby版とは異なり、C++版では完全にマルチスレッドに対応しています。具体的には、マルチコア時代の高並列性IOアーキテクチャ Wavy を利用しています: 複数のスレッドでイベントループを共有しており、マルチスレッドでイベントハンドラを次々に処理していきます。 単純なイベント駆動I/Oと比べると、並列性が高いという利点があります。イベントハンドラの中で処理が多少ブロックしても、

    MessagePack-RPC for C++ テクニカルプレビュー - Blog by Sadayuki Furuhashi
  • 情報科学苦手の会 - 兼雑記

    という素敵な会があったので行ってきた。 http://groups.google.co.jp/group/nigate 私もなんか発表とかしました。 C++ の吐く機械語ってどうなってるのとかいう話だったので、まぁそんなに違うんじゃないかなーとスライド作ってみたら、意外とたくさん違いがった。 http://shinh.skr.jp/dat_dir/cppbin/000.html 苦手ってことだし適当なスライドでいいだろーと思ってほぼ何も調べずに書いたら、例外とかで難しいツッコミが多くて困った。特に例外についてはもうちょい詳しく調べんといかん。 自分の苦手なものを書く時にも書いたのだけど、私にとって苦手なものっていうのは、興味なり必要性はあるけど勉強が足りてないものだなぁと思います。そもそも興味も必要性も無いものってわざわざ苦手とか思わないんですよね。5年前の私は英語が苦手でなかったと言える

    情報科学苦手の会 - 兼雑記
    kazuhooku
    kazuhooku 2009/12/08
    すばらしす
  • Strategies for Implementing POSIX Condition Variables on Win32

    Strategies for Implementing POSIX Condition Variables on Win32 Douglas C. Schmidt and Irfan Pyarali Department of Computer Science Washington University, St. Louis, Missouri 1. Introduction The threading API provided by the Microsoft Win32 [Richter] family of operating systems (i.e., Windows NT, Windows '95, and Windows CE) provides some of the same concurrency constructs defined by the POSIX Pthr

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    kazuhooku
    kazuhooku 2009/10/08
    あざっす。sudo cpan -i cppref でインストールできます
  • freeml(フリーエムエル)|新しい生活をはじめる羅針盤

  • ASTL - The Automata Standard Template Library

    Welcome to the Automata Standard Template Library home page. ASTL is a set of generic and efficient C++ components for automata manipulation. It provides a collection of new concepts and header files which one can reuse under the terms of the Lesser GNU Public License. The library has been designed and tested with the latest versions of g++. Design The library design is inspired by generic program

  • g++ exception handling - memologue

    Code Project という有名サイトに、VC++の例外処理方法に関する記事があります (http://www.codeproject.com/cpp/Exceptionhandler.asp) が、そこにg++の例外処理方法を解説したコメントがありました。 ざっくりと次のような事を言っています(翻訳してるわけではないので詳しくは英文読んでください)。 g++は、VC++とはちょっと違うやりかたで例外処理を実装している。g++の場合、実際に例外がthrowされない限りは、try/throw/catchを使ったコードを書いてもランタイムのコストはかからない。 foo()がbar()を呼んでいて、bar()が例外を投げるとせよ。このとき、foo()はスタックに戻りアドレス*1を置いてからbar()を呼ぶ。この戻りアドレスを仮にXとする。 このときコンパイラは、 (X, 掃除コードのアドレス

    g++ exception handling - memologue
    kazuhooku
    kazuhooku 2009/07/15
    よいまとめ
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
    kazuhooku
    kazuhooku 2009/07/02
    いろいろ教えていただいてありがとうございました
  • http://diary.eth.jp/?date=20090609

    kazuhooku
    kazuhooku 2009/06/12
    some_map.erase(it++) と書くのが best practice なのかなぁ。てか erase(it->first) は iterator もってるのに再度検索することになるので美しくないと思う
  • MessagePack + Wavy で高速なRPCサーバーを書く「ccf」 - Blog by Sadayuki Furuhashi

    先日、追記型オブジェクトストレージKastorを紹介しました。そこで「C++でクラスタアプリケーションを書くためのフレームワーク(ccf; Cluster Communcation Framework)を実装中」などなど書きました。 最近C++でサーバープログラムを書くときには MessagePack(シリアライザ・デシリアライザ。プロトコルに利用)とmp::wavy(イベント駆動I/Oとスレッドプールを統合してうまく動かすライブラリ)という2つのライブラリを使うことが多い*1のですが、この2つを組み合わせるときにいつも似たようなコードを書いていたので、いっそまとめて1つのフレームワークのようにしたら便利そうだなーという動機でccfの開発を始めました。 …以下長々と書いていますが、論よりコード。このヘッダ と サーバーのサンプル と クライアントのサンプル を見れば、何ができるのかは大体分

    MessagePack + Wavy で高速なRPCサーバーを書く「ccf」 - Blog by Sadayuki Furuhashi
    kazuhooku
    kazuhooku 2009/05/28
    サンプル見ると thrift よりかゆいところに手が届きそう
  • 拡張メソッドの邪悪な用途

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 26195 トラックバック - 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によるテスト駆

  • はじめてのひき - IntSizetIterator

    vector<int> をどうぶん回すべきか。ありそうな主張を適当にまとめてみる。個人的には、 まわりのコードにあわせる 仕事じゃなければ、例外として気分で逆らってみたりする 仕事なら基 const_iterator 趣味でかつ gcc の warning option つけてるような時は size_t 適当な時は int 例外として気分で変える なんか書いてない派閥の主張とかある人は足してくださると良いかとー

    kazuhooku
    kazuhooku 2009/01/07
    www
  • Getting C++ Threads Right

    Google Tech Talks December, 12 2007 ABSTRACT The advent of multicore processors has generated profound debate on the merits of writing parallel programs with threads and locks. Nonetheless, for many application domains, this remains the standard paradigm for writing parallel programs, and at the moment, there is no apparent universal replacement. And it is the focus of this talk. Somewhat surpr

    Getting C++ Threads Right
  • 各種マップ実装の性能比較 - mixi engineer blog

    今回は小ネタのmikioです。key/valueのレコードを高速に格納・参照・削除する仕組みが連想配列とかマップとか呼ばれて親しまれていますが、Tokyo Cabinetのオンメモリマップの性能をC++の各種実装と比較してみました。 以下の実装を対象として、100万レコードの格納と検索にかかる時間を計測します。キーと値は各8バイトの文字列とします。 Tokyo Cabientのオンメモリマップ(TCMAP) STL(C++の標準テンプレートライブラリ)のmapとmulti mapとset GNU拡張テンプレートのハッシュマップ Googleのdense hashおよびsparse hash テストコードはこちらに挙げておきます。具体的な操作としては、マップオブジェクトを生成し、バケット配列の要素数をレコード数と同じにチューニングし、ループを回してレコード群を格納します。なお、STLのマップ

    各種マップ実装の性能比較 - mixi engineer blog
  • google-glog: Application Level Logging

    ► 2024 (7) ► February (6) ► January (1) ► 2023 (44) ► December (5) ► November (6) ► October (2) ► September (3) ► August (1) ► July (2) ► June (5) ► May (5) ► April (2) ► March (6) ► February (3) ► January (4) ► 2022 (44) ► December (4) ► November (2) ► October (7) ► September (6) ► August (2) ► July (3) ► June (5) ► May (1) ► April (2) ► March (4) ► February (5) ► January (3) ► 2021 (55) ► Decemb

    google-glog: Application Level Logging
  • URI Template の C++ 実装 (Xbyak による JIT 版ほか) (nakatani @ cybozu labs)

    その昔はテキスト整形ツールすらアセンブラで書くほどのバイナリアンでもあったんですが、X68000 から卒業せざるをえなくなると同時にすっかり足を洗っていたのです。 が、何の因果かこのたび、C++の世界に引き摺り込まれ、メモリやクロック数にきゅうきゅう呻吟する日々が再びやってきてしまいました……。もはやGCの無い言語でプログラミングするまい、と堅く心に誓っていたのになあ(涙)。 まあ、嘆いてばかりいても始まらない。 バイナリアンは××年ぶり(x86 の知識は 286 が最後)、C++ は実質初めて、勉強しないといけないことがたんまり。 んー中谷は何か作ってみないとわかんない人なんで、身近で手頃な題材を…… というわけで URI Template を実装してみました。調べた範囲内ではC++の実装もなさそうだし。 勉強が主目的なので、仕様は簡易に draft-01 準拠(単純な substitu

  • JavaScript 的な考え方で C++ Template に入門してみた - IT戦記

    はじめに id:kazuhooku さんが Kazuho@Cybozu Labs: なんとなくリフレクション in C++ という記事を書いていて、なんか凄そう! わくわく! でも、読めません>< Template 怖い>< という訳で C++ Template の勉強をしてみよう! そいえば、ちょっと前に 1000speakers で上野氏に C++ Template はチューリング完全、関数型言語というようなことを聞いたきがする! じゃあ、いろんなことが出来るはず! という訳で JavaScript で出来ることが C++ で出来るかを試してみよう! まず 関数テンプレートと構造体テンプレートどっちで JavaScript の関数を表現するべきかを考えた。 C++ の文法を考える // これはできない>< void foo() { void bar() { void baz() { }

    JavaScript 的な考え方で C++ Template に入門してみた - IT戦記
  • Download Visual Studio 2005 Retired documentation from Official Microsoft Download Center

    kazuhooku
    kazuhooku 2008/05/22
    VC++ は 2005 からのサポート
  • サイボウズ株式会社

    サイボウズはクラウドベースのグループウェアや業務改善サービスを軸に、社会のチームワーク向上を支援しています。

    サイボウズ株式会社
    kazuhooku
    kazuhooku 2008/04/24
    「Visual C++ のことを高機能なマクロアセンブラだと思っている節がある光成さん」www