或曰

……と、ある人は言った。

-- 2002年2月下旬 --

Sat, 21 Dec 2002 20:12:46 JST / hina.di
powered by tds-1.3.0
<issei@issei.org>



検索式: [検索方法]

表示件数: 表示形式: ソート:

[最新版] << == >> [一覧]

2002/2/20(Wed)

引越し

近日中に www.issei.org を引越します。 来週あたり一時的に unreachable になるかもしれませんが、 そういうことで。

boost 1.27 / mem_fn

Visual C++ 6.0 と組み合わせて使う場合でも、void 型の関数に対して boost::mem_fn() を適用して関数オブジェクトが作れるようになってる。 やるなぁ。

_ 背景

ANSI C++ の規格では

void g();
void f() { return g(); }

というコードは合法だが Visual C++ 6.0 ではコンパイルが通らない。 boost 1.25 以前の mem_fn や Visual C++ 6.0 添付の std::mem_fun は 上記のコードが通ることを前提とした記述になっていたので、void 型の 関数に対しては関数オブジェクトが作れなかった。

参考 : STLport 4.51 の mem_fun_t

template <class _Ret, class _Tp>
class mem_fun_t : public unary_function<_Tp*,_Ret> {
  typedef _Ret (_Tp::*_fun_type)(void);
public:
  explicit mem_fun_t(_fun_type __pf) : _M_f(__pf) {}

  // *********************************************************
  // _Ret が void だと、このメソッドでエラーになる
  _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); }
  // *********************************************************

private:
  _fun_type _M_f;
};

お買い物

_[Book] 書籍

_[Comic] コミック

Visual C++ 6.0 / コマンドラインからのビルド

makefile のエクスポートをせずとも、

MSDEV.EXE DxApp.dsp /MAKE "DxApp - Win32 Debug UNICODE"

なんて感じでビルドできるのね。


2002/2/24(Sun)

引越し

先日の予告どおり www.issei.org を引越しました。移転先は inetd です。

_ TODO

STLportBoost に関して Tips が溜まってきてるから、忘れないうちに HTML にして残しておきたい。 メモ書きを掘り起し中。

Vim6 覚書

昨年末からエディタとして vim を使い始めました。最初は設定方法が分からず Emacs を捨てきれなかったのですが、 ようやく vim6 も手に馴染んできてメインで使用するエディタを切り替えられそうな 気配。

vim6 関連の情報は 香り屋 と、そこからたどれるサイトに集まってます。 下の設定ファイルも、雛型はそのあたりから。

_ 補完

Ctrl-P, Ctrl-N で文字列補完。長い識別子を使ってプログラミングしているときには、使うと 作業効率が上がる。

_ winmanager : A windows style IDE for Vim 6.0

ファイル一覧とバッファ一覧を表示し、対話的に編集できるようにする plugin。 スクリーンショット を見てもらった方が話が早い。

_ C/Migemo

これは 香り屋 版だけかな。 ローマ字のまま日本語をインクリメンタル検索するモジュール。 日本語検索の際に IME の ON/OFF が不要になる上、英単語のつづりでカタカナ文字を検索できる (task でタスクを 検索できる) ので便利。

_ ウィンドウの半透明表示

これも 香り屋 版だけかな。 set transparency=# で透明度を指定できる。 set transparency=255 で完全不透明、set transparency=0 で完全透明。 裏で UML モデリングツールで書いた図を表示しつつ、表で vim でコーディングする なんて場合に便利。

私は半透明/不透明状態を簡単に切り替えられるように、簡単な map を定義して使っています。

function! ToggleTransparent()
	if &transparency == 255
		set transparency=224
	else
		set transparency=255
	endif
endfunction

map <c-w><c-p> :call ToggleTransparent()<cr>

DirectX プログラミング (番外)

敵キャラやショットが動くようになったところで、次は

あたりを考え中。汎用的なタスク間通信のフレームワークを決めて、CTaskManager あたりに追加する のが良さそうか。

それはそれとして、後で正味の作業時間と進捗具合を見たいので 作業経過をまとめたページ を用意 *1


*1:書き終わってから思ったけど、あっちも TDS で書けば楽だかったかも。


2002/2/25(Mon)

Boost ML

先日 boost.org の 開発者用メーリングリスト を subscribe したけど、かなり盛り上がってる。

C++ にラムダ抽象を実装するライブラリやら、格納したポインタの寿命管理をやってく れるコンテナなど、面白そう/実用性が高そうな話がいろいろと。

「100分の1以下」の圧縮技術

つーか、randamデータの圧縮って可能なん?

無理です。

これは理論的に詰められていて「無記憶情報源については、一意復号可能な どのような符号もその平均符号長はエントロピーよりも短くできない」ことが証明され ています *1。したがって完全にランダムなデータでは、どのような符号化方式を持ってきても圧縮 できません。

ただ ZDNet の元記事では

ほぼすべてのデジタルファイルを100分の1以下に圧縮し,欠損なしに元の大きさに復元できる方法を発見したと発表

と書いてあるので、完全な random データを持ってきても反論にはならないかと。

_ それにしても

信じるに足る話とは到底思えませんけどね。


*1:Kraft-McMillan の定理。


2002/2/26(Tue)

日がな一日

プログラムを書こうと思ったものの、どうも気合いが入らない。 今日は諦めて、メールを片付けたり Boost の Generic Programming Techniques訳して 過ごす。

_ 汎用プログラミング

上のドキュメントは、汎用プログラミングで使われる代表的なテクニック に関する解説ですが、より詳しく知りたい場合には、次の二冊を推薦して おきます。

Modern C++ Design は、私が洋書で買ったら、読み終わる前に邦訳が出たと いう…。


2002/2/27(Wed)

お買い物

IBM の Web サイト でスプリング・オプション・キャンペーン実施中。

ClubIBM 会員用サイトで、バッテリチャージャーと ThinkPad X シリーズ 用 Li-ION バッテリ 2 本のセットを購入。32,200 円也 *1


*1:非会員価格だと 40,900 円だから、これだけで年会費 2,000 円の元は とったね。

サイト内検索

別件で Namazu を使うことになってるので、自分のサイトを実験台に。ということで 検索ページ を付けてみました。 なお、日記に書いてある内容は、上に表示されている検索用フォームからも 検索できます。

_ メモ

root として標準的なディレクトリにインストールするのではなく、個人のディ レクトリにインストールするので少々苦労するかと身構えたけど、何も苦労せず にインストール完了。Text::Kakasi のコンパイルに Makefile.PL を書き直す必 要があった程度で、他は configure や Makefile.PL に適切な引数を与えるだけ で OK。

よくできてるよ。

Perl モジュールを個人用のディレクトリにインストールする

% perl Makefile.PL \
	LIB=~/cmd/lib/perl5/ \
	INSTALLMAN1DIR=~/cmd/man/man1/ \
	INSTALLMAN3DIR=~/cmd/man/man3/
% make
% make test
% make install

個人用ディレクトリにインストールした Perl モジュールを Namazu で使う

% ./configure \
	--prefix=$HOME/cmd \
	--with-perl5="/usr/local/bin/perl -I $HOME/cmd/lib/perl5"
% make
% make install

以上、5日分です。

[最新版] [一覧] << == >>

Copyright © 2000 - 2002
Issei Suzuki <issei@issei.org>