...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

C++

WTL

Boost C++ Libraries プログラミングを読みながら,久しぶりにC++で遊んでた. boostのヘッダをインクルードするとやっぱり滅茶苦茶コンパイル遅いなあ,VC++のインテリセンス全然効かないなあ,ていうか収集しようとする様子が全然見られないぞ,ncbファイ…

boost::find_formatter

C++

Boost C++ Libraries プログラミングを読みながらサンプルコード書いてみていたり.とりあえず頭からやろうと思って<boost/algorithm/string.hpp>を使った文字列処理であれこれ.find_formatterの使い方ではまったのでメモしておく. #include <iostream> #include <string> #include <boost/algorithm/string.hpp> using namespace std;</boost/algorithm/string.hpp></string></iostream></boost/algorithm/string.hpp>…

Boost C++ Libraries / More Effective C++

昨日,会社帰りに本屋に寄ってこの2冊を買ってきたー. Boostの方は,パッと見たところでは boost::asio が面白そう. こんなライブラリだったのね. More Effective C++の方は,Effective C++と比べると少々踏み込んだ内容になっているせいなのか,パッと見…

Win32 GUI Generics

ってどうなの? なんか全然更新されてないっぽいんだけど.

Gdiplus::Graphics::DrawImage() が遅すぎて

void Draw(Graphics& g, int left, int top, int width, int height, Bitmap& bitmap) { HBITMAP hBmp; HBITMAP* hOldBmp = NULL; bitmap.GetHBITMAP(Color(0,0,0), &hBmp); CDC dc; HDC hdc = g.GetHDC(); dc.Attach(hdc); CDC MemDC; MemDC.CreateCompatib…

唐突に

D言語ばっかりいじってると,なぜか無性にC++の変態的(ほめ言葉)なコードを触りたくなる不思議. D言語にはやはりSTL的な変態度が足りない. それとIDEの支援受けたい. IDE. そうだIDEをくれ. VC6レベルでいいから(それでも大変か). つーか,やっぱI…

CppUnit

D言語はunittestが簡単にできるんでテストコードもたまに書いたりするようになった. C++で組んでいるコードでもちゃんとテストコード書こうかなとちょっと思ったり. とりあえず一回くらいCppUnitを使ってみないとな.

Boost C++ Libraries プログラミング 第2版

出るんだって.

新訂版 More Effective C++

新訂版 More Effective C++ (AddisonーWesley professional co)作者: スコット・メイヤーズ,安村通晃,伊賀聡一郎,飯田朱美,永田周一出版社/メーカー: ピアソンエデュケーション発売日: 2007/06/29メディア: 単行本(ソフトカバー)購入: 8人 クリック: 129回…

Let's Boost

C++

http://www.kmonos.net/alang/boost/ ふと思い立って見に行ってみたらBoost 1.34.0 がリリースされていて説明も更新されていた. うひゃっほー.

布団に入ってからの読書

そんな新しい習慣ができた. 積ん読状態の本が溜まってきていて,どうしたもんかなーと思っていたんだけど,これを始めてから少しずつ消化でき始めている. いい感じだ.今読んでいるのは,かのC++の御大が書いた本,「C++の設計と実装」の翻訳版. こいつは…

メンバ関数ポインタ

C++

デリゲートの説明文を書くために,その比較相手としてC++のメンバ関数ポインタを勉強し直した. というか,初めてコードを書いたかもしれん. なんてわかりにくいんだ,こやつは. ついでに,ソースコードをハイライトできるようになったみたいなのでそれの…

std::cout

C++

後輩が std::cout 知らないとか言うので何がどう便利なのかがわかるようなサンプルを書いてみた. パッと思いついたメリットは次の2つ. printf では型指定を間違うとクラッシュする問題があったが,std::cout では型を自動認識してくれるためこの問題が起こ…

Closure もどき

C++

boost::function と boost::bind を使えばできるとは聞いていたけど,これは面白いなー. さらに boost::ref を使えば Closure の中から書き換えることもできるのかー. こうなると関数リテラルを書きたくなるのが人の心といふものよ. #include <iostream> #include <boost/function.hpp> </boost/function.hpp></iostream>…

ひさびさ・アゲイン

C++

今日と昨日はC++にどっぷり浸かったわいな.直交した機能をポリシークラスに分解するとか,多態性を使うべきとかで,リファクタリングするとどうしてもクラスが増えていくなぁー,と思ってたら,重要なことを忘れていた. 変更箇所を一箇所に集めよ! 後で合…

ひさびさ

C++

久しぶりにC++をいじってみた. もうなんていうかいろんなところで叫びたくなるねw テンプレート関数の引数にテンプレートが使えないとか,もうね. やってられないです! 自分でどうやって書いてたんだろうと思った. あー,いちいちfunctorを作るしかない…

しまった〜(><;;

C++

関数テンプレートは部分特殊化できないんだった! 予定変更しなきゃw以下,予定(改).第一部(1) 似通った関数を関数テンプレートで一つにまとめよう (2) テンプレートはヘッダーに書こう (3) 特定の型だけ別に扱いたいときは特殊化しよう (4)…

C++連載停滞中

おはようございます(・ω・) あまりにも眠たかったからソファーで寝てました. ちゃんと布団で寝ないと・・・.C++の連載がしばらく停滞しています. 次はテンプレートの部分特殊化の話なんですけど,これを使うとうれしい場面がなかなか思いつかないんです…

C++テンプレートを使いこなす! 第一部 (3)

C++

(3) 特定の型だけ別に扱いたいときは特殊化しようまずはおさらいです.関数テンプレートを使えば,型だけが異なる関数を複数作らなくても済むので,コードの重複を避けられるのでした.ところが,「普段は汎用の関数テンプレートで十分だけど,この型の場…

C++テンプレートを使いこなす! 第一部 (2)

C++

(2) テンプレートはヘッダーに書こう通常の関数の場合,プロトタイプ宣言と定義を二つのファイルに分けて書くのが普通です.つまり,min.h 001 int min(int lhs, int rhs);min.cpp 001 #include "min.h" 002 int min(int lhs, int rhs) 003 return (lhs<rhs?lhs:rhs); 004 }main.cpp 001 #include <cstdio> 0</rhs?lhs:rhs);>…

boost::spiritを使ってみる (2)

C++

いやー,spirit は本当に便利だわ. ものすっっっっっっっっっごくコンパイルが遅くなるけどwしかしまー,プログラミング言語の BNF 記法を考えるのは大変だな! int a; int b();この二行をパースして a が変数名, b が関数名だと知るためには,シンボル名…

boost::spiritを使ってみる

C++

D言語パーサーが欲しい. 試しに変態的という褒め言葉が最も似合うライブラリ, boost::spirit を使ってみた.使ってみてわかったが,このライブラリはすごいな. class A { int a; }; ←入力 A, a, ←出力 - class A { int a,b,c; }; A, a, b, c, - class A {…

C++テンプレートを使いこなす! 第一部 (1)

C++

(1) 似通った関数を関数テンプレートで一つにまとめよう同じコードがあちこちに存在するプログラムは悪いコードの見本です.したがって,プログラミングで最も浅はかな行為はコピーアンドペーストです.これをやると必ずコードが重複しますからね.しかし…

C++テンプレートを使いこなす! 予告編

C++

周りを見渡してみると,Cでもbetter CでもないC++を語り合える人がほとんどいません.ほとんどの人は学校でCを勉強した後,研究などでC++(ほとんどVC++)をbetter Cとして使って終わりか,C++をやめて他の言語に行ってしまいます.JavaとかC#とかね.C++は…

Effective C++ 原著第3版

やっと新刊が出ました!Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)作者: スコット・メイヤーズ,小林健一郎出版社/メーカー: ピアソン・エデュケーション発売日: 2006/04/29メディア: 大型本購入: 29人 クリック: 411回この商…

クロスリファレンス作成プログラム

C++

http://mixi.jp/view_diary.pl?id=121472047&owner_id=842935より. お題はJavaなんだけどC++じゃダメですか?(^^;コンマとかピリオドとかアポストロフィーとか(・・・)って何? 食えるの? ちゅーか,これじゃメモリ使いまくりで効率悪いですか,そう…

VC6は今すぐ窓から投げ捨てろ

C++

プログラミングの経験が浅くてVC6で十分だと考えている人が多いと思う. そういう人はC++の準拠レベルなんて気にしないだろうけど,VC6は言語仕様通りのコードがコンパイルできない問題以外にも様々なバグがある. 開発中にいきなりフリーズしてプロジェクト…

C++: ダブルディスパッチ(1)

C++

メモみたいなもの(^^;C++でダブルディスパッチのうまい実装を考え中. 1つのパラダイムに限定した設計から始めて,もう4パターン作ってしまったがどうも気に入らない. 適当に名前を付けるとこんな感じか?・インタフェースベース ・ファンクタベース …

VS2005とPolicy

C++

Modern C++ Design を読んでポリシーという概念がわかってきた. あるサービスを実現するクラスがあったとして,そのクラスが持つ機能をコンパイル時に複数ある候補の中から選択できるように作る方法なんだな. OOP の常套句,ポリモーフィズムを使っても同…

Modern C++ Design

C++の真骨頂・・・テンプレートジェネリックプログラミングの極意がここに.前から買おう買おうと思っていた本をついに買ってしまいました. 実は自分,プログラミングの勉強ってほとんど雑誌を読んで. ちゃんと体系的に学べる本を読んだことが少ないので,…