C++ Technical Documents

開発ノウハウの一部を公開します

top_ttl_img03

開発者の方々にお役に立つテクニカルドキュメントです。Articles、References、Miscelaneousに分かれて説明しています。初心者の方からプロの方まで役に立つ読み物と資料集です。是非、開発のお役にお立て下さい。

Articles : 読み物

C++の新しいキャスト
標準C++に追加された新しいキャストについて。
抽象データ型と Java/C++ そしてCOM/CORBA
抽象データ型の意味とJava/C++,COM/CORBAとの関係
時空を越えるオブジェクト
シリアライズにまつわる様々なテクニック
時空を越えるオブジェクト part-2
ObjectStore PSEを使ったオブジェクトの永続化
オブジェクト指向とはなにか
オブジェクト指向を知りたい初心者のあなたのために…
7つの電話番号簿
STL,MFC,Tools.h++が提供する”辞書”の特徴 (Java版のおまけ付き)
はじめてのDBTools.h++ (part-1)
Rogue Wave DBTools.h++ 入門: 単一テーブルの操作
はじめてのDBTools.h++ (part-2)
Rogue Wave DBTools.h++ 入門: 複数テーブルの操作、その他
はじめてのDBTools.h++ (part-3)
Rogue Wave DBTools.h++ 入門: Open SQL (version 4.x 以降)
はじめてのDBTools.h++ (part-4)
Rogue Wave DBTools.h++ 入門: version 4.1 で可能になったJOINの入れ子
コンテナの種類による計算量の相違
暗黙のうちに実行されるメソッドを計測する
sizeofの不思議
「C++はCよりデカい」のか? その一因はここにある…
Windows-API による文字列比較オブジェクト
CompareString-API を使って複雑な文字列比較を行なう
XMLを用いた状態遷移
状態遷移表をXMLで記述し、それを解析しながら駆動する試み
XMLを用いた状態遷移 part-2
状態遷移表をXMLで記述し、それを解析してC++/Javaのコード生成を行なう

  1. アクションの結果に応じて遷移先を変えたいのです
  2. アクションの結果に応じて遷移先を変えたいのです (改訂版)
CSVからXMLへ
CSV(Comma Separated Value:カンマ区切りフォーマット)ファイルをXML(XSL,DTD)に変換する
XMLを用いた永続オブジェクトの試み
時空を超えるオブジェクトをXMLで実現する
安定な優先順位付きキュー
std::priority_queueでは要素の順序が安定でない。ではどうしたら…
listに使える 3(+1)つの sort
std::sort は list<T>をソートすることができない。list<T>をソートできるアルゴリズムの紹介。
DBTools.h++/iPEXによるスキーマの読み出しとXML化
データベースの各テーブルのスキーマを読み出し、XMLで出力する(XSLのおまけ付き)

  1. iPEX 2.1だとコンパイル・エラーになります
  2. Xercesではやれませんか?
Xerces-CにICUを使わせるには
IBM-ICUを使って様々なencodingで書かれたXMLに対応する

  1. ICUの文字コード変換を使いたいのですが…
  2. Xercesが変わった!? (Xerces 2.x tips)
データベースにコレクションを格納する
Rogue WaveコレクションをRDBのカラムのひとつに押し込む方法
自己組織化検索
使えば使うほど速くなる摩訶不思議(?)な検索アルゴリズム
正規表現ライブラリ ‘Boost Regex++’ の使い方
C++が苦手な文字列操作を強化する

  1. ‘置換’はどうやればいいのですか?
  2. ‘ICU 2.4 の正規表現
  3. ‘ICU 2.x : UnicodeStringによる文字コード変換
自TestRunner自動生成 (for CppUnit 1.6.2)
テストコードを食わせてテスト実行モジュールを吐かせる(ruby版のC++への移植)
ハッシュは本当に速いのか?
ハッシュによるsetの3種の実装について、そのスピードを検証する
Handle-Bodyイディオム : 参照カウントによる実装
boost::shared_ptrによるHandle-Bodyイディオムの実装
C++ vs. Java (1)
C++とJava、それぞれのいいところ/わるいことろ :
多重継承 vs. 単一継承
STLコンテナに起因するコード膨張の抑止
templateが生成するコード量を抑えるヒント
テンポラリ・バッファとしての std::vector の利用
std::vectorをテンポラリバッファとして利用する
オブジェクト指向設計の基本
抽象化・カプセル化・クラス階層
Cによるオブジェクト指向’風’プログラミング
抽象データ型のCによる実現
Refactoring C-code
Cにおける リファクタリング・カタログ
Java入門 : C++/C#/VB port
Java入門(ISBN4-88135-351-9) 第三章のC++/C#/VB.net への移植

References : 資料集

STL samples
Standard Template Libraryのほとんどすべてを網羅したサンプル集
おすすめ書籍リスト
オブジェクト指向/Windows/C++ 関連書籍ガイド
Tools.h++ ユーザガイド
Rogue Wave 「Tools.h++ User’s guide」日本語訳
STL in Tools.h++
Tools.h++が提供するSTLコンパチなコンテナ(単方向リストとハッシュ表)の使い方
slist<T, Alloc> リファレンス
SGI版STLの単方向リンク・リスト: slist<T, Alloc> リファレンス
初期化されていないメモリへの記憶
標準C++ライブラリ :<memory> より
STLport のハッシュ・コンテナ
STLport が提供する ‘ハッシュ表によるコンテナ: hash_xxxx’ の使い方

Miscelaneous : 番外編

Making of C++ Technical Documents
STLを使ってソースコードをHTMLに変換する。
COMからのイベントを捕まえる方法
DDJ 1999.3で書けなかった”COMからのイベントを捕まえるエレガントな方法”の紹介。
バイナリ/テキスト相互変換(BASE64とQuoted-printable)
電子メールでのバイナリファイル転送に使われているBase64/Quoted-printable変換モジュールを作る。
SMC(State Map Compiler)の拡張
C-Magazine 1999/9 で紹介したSMCの機能強化版。Javaコードも吐くぞ。
STX : STL拡張パッケージ
STLをもっと便利に使おうじゃないか!

デバッグするとバグが出る?! : DLLにまつわる問題
debug-modeでのみ起こるという摩訶不思議なバグに遭遇した…というお話
C++/C#/VB.NET による リファクタリング – 最初の例
マーチン・ファウラー著 「リファクタリング」第一章をC++/C#/VB.NET で書く
CppUnit 導入ガイド
C++版 UnitTestFramework ‘CppUnit’ 最初の一歩
Mockpp 導入ガイド
CppUnitの心強い相棒:Mockpp の使い方。
CUnit 導入ガイド
C版 UnitTestFramework ‘CUnit’ 最初の一歩