2008-10-01から1ヶ月間の記事一覧

仮想関数の継承とデフォルトパラメータの関係

デフォルトパラメータを持つ仮想関数を継承する場合の振る舞いを調べてみた.仮想関数は「動的に結合」される一方,デフォルトパラメータは「静的に結合」される.

配列の要素に名前をつける

C/C++ で配列の各要素に名前をつける方法について.例えば, unsigned char col[4]; として宣言された col の各要素を red, green, blue, alpha のような識別子でも参照できるようにする.

std::vector, liboctave の ColumnVector, 配列に共通の関数

STL (標準テンプレートライブラリ) の std::vector とか liboctave の ColumnVector,あるいは普通の配列に対して共通に使えるテンプレート関数の作り方を説明する.

C と C++ の間で関数や変数を共有する

C++ で実装した関数を C から利用したい場合,あるいはその逆の場合がある.同じソースの中に両方のプログラムコードを書くことはできないが,それぞれのソースをコンパイルしてオブジェクトファイルを生成し,それらをリンクすることは可能だ.ただし C++ …

nVIDIA (GeForce), KDE, (Debian) でフリーズする

nVIDIA の GeForce 8800 GT を搭載しているマシンに, Debian-lenny をインストールし, KDE 3.5.9 で作業している.夜パソコンを起動したまま帰宅し朝見てみると, X.Org が固まっている.この問題を解決できたようなので,レポートする.

壊れたシンボリックリンクを一覧する

linux で,リンク先のファイルが存在しないシンボリックリンクを一覧するスクリプト.

プリプロセッサ #warning は非標準

ふと気になって,C++のプリプロセッサ・ディレクティブ (Preprocessing directives) を調べてみた.ソースは ISO/IEC 14882:1998 (E).gcc/g++ で何気なく使っていた #warning は標準じゃないことを知った.

Gnuplot のコンパイルとインストール

Gnuplot (4.2.4) は,ライセンスの関係がどうとかで readline がデフォルトでは使えない.このためコマンドプロンプト上でファイルを Tab キーとかで補完できないので不便だ.そこで自分でコンパイルする.

端末に色つきテキストを出力する

iomanip の setw(5) みたいなノリで,出力する文字に色をつける方法を考える. cout<