銀河の歴史がまた1ページ(日記)

Last Update (2002/06/05 07:10:34)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索] [統合検索]

ページ内目次


■ 宇宙歴 2002.05.16 (Thu)

http://www.ceres.dti.ne.jp/~george/jdiaryA20501.html#20020516

そふで5月号より

もうすぐ6月号が出るような時期に、なぜかそふで5月号をチェックしている罠。

FF11はすごい混雑らしい

2ちゃんねるのFF11スレッドをちょっと見物したところ、物凄い状況になっている模様。 「12時間もリトライしてますが、まだゲーム開始に辿り着けません!」とか、 「登録に挑戦し続けて、5000円分のWebマネー、残り900円分しか残ってないよ!」とか。(何かの登録に100円かかるらしい。)


■ 宇宙歴 2002.05.19 (Sun)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020519

Dual Athlon その後

どんどんインストールして環境構築。

初回インストールの素敵な青画面が嘘のように安定しているDual Athlonマシン。 AMD ChipSetでUSBを使うのはこれが初めてなんだけど、なんとなく動作している様子。 ここまで順調だと、なんか怪しいな…。


■ 宇宙歴 2002.05.21 (Tue)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020521

Dual Athlon でPSOハイエンド

今日はPSO Ver.2(Windows版)とDirectX 8.1とUSB→PS2コントローラドライバをインストール。 試しにPSOの設定を「ハイエンド」にしてみたが、ちょっと遅いけどそれなりに遊べているような状態。 すげ〜CPUパワーかも。 (^^)


■ 宇宙歴 2002.05.23 (Thu)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020523

統合検索スクリプトその後

以前作成していた統合検索スクリプト。 結局、UNICODE→x-sjis変換はCGIに任せることにした。 JavaScript→CGIのデータ送信は、フレームを使って、別フレーム内部にwindow.open("cgi-bin/jcodecnv.cgi?%u3078", "data");などとすることに。 CGI→JavaScriptのデータ受信は、別フレーム内部にCGIスクリプトが出力したフォーム内容をJavaScriptから読むことに。 実に怪しい連携だ。 全部CGIから出力したJavaScript内蔵ページを使う形式にすれば良かった...。 (^^;)
現在製作中。 動くようになったら今のページと入れ換える予定。


■ 宇宙歴 2002.05.25 (Sat)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020525

Modern C++ Design

ちくと読書。 うお…この本は…すごく良い…。 みんな買うように。 つうか、買え。

しかし、すごいテクだな...。 templateが出現してからもうずいぶん経つけど、ついにここまで来たか...という印象。 ただ、#defineの出現頻度が割と高いので、ここはやっぱりC++言語側でなんらかのサポートが必要なんじゃないだろうか、と思ってみたり。 しかし、何の前知識もなくこのソースみたら気絶するよな...。 (^^;)

後日談。 gcc-2.95.3で試すと、ちょこちょこ動かなかったりする。 まだ日常的に利用可能な領域までは来てないかな?


■ 宇宙歴 2002.05.27 (Mon)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020527

C++::placement new とデストラクタ付きclass

placement new (配置new)をやった後のアドレスの話。 virtualを持たないclassの配列でも、元のアドレスから4バイトとか後ろにずれることがあるのを初めて知った。 (O_O)
gcc-2.95.3で適当に試したところ、virtualではなくともユーザー定義のデストラクタがclass内部に存在すると、アドレスが後ろにずれた。 char* addr = new char[sizeof(SomeData[3])]; などと、サイズキッチリでメモリを確保していると、後ろのデータが壊れる...。

この手の、裏で処理系が使っている領域はsizeofでは測定できないけど、*本当*に使うメモリサイズの測定方法ってどうやるんだろ。 (..)?

//
//  placement new (配置new) のテスト
//
#include <iostream>
using namespace std;

struct SampleData {
        int a;
        int b;
        int c;
        ~SampleData() { cout << "-"; };
};

int main() {
        cout << "--------------------placement new した時、アドレスはどう変わる?" << endl;
        char* addr = new char[1024];
        cout << "取得アドレス = " 
             << hex << reinterpret_cast<long>(addr) << dec << endl;
        SampleData* ptr = new (addr) SampleData[3];
        cout << "placement new した後のアドレス = " 
             << hex << reinterpret_cast<long>(ptr) << dec << endl;
}

後日談。s/replacement/placemnt/g でした。


■ 宇宙歴 2002.05.29 (Wed)

http://www.ceres.dti.ne.jp/~george/jdiaryA20516.html#20020529

Mozilla-1.0-RC-3 インストール

もうだいぶ前にリリースされていたMozilla-1.0-RC-3をちくとコンパイルしてインストール。 外見上、変更点はさっぱりわからず。 (^^;)

RE:配置new

なるほど!。 情報ありがとうございます。 (^^)
というわけで。 本日の教訓:placement new でデストラクタ付きclassの配列を配置 newするのは危険、通常は配置newの使用は避けるべきだが、やむを得ない場合はPOD(plain old data)のみにせよ。
p.s. s/replacement/placemnt/g とこっそり訂正(汗;)。

えーと、POD(plain old data)とは...。 以下の条件を満たすもの。 (後日資料をチェックして補完予定。)


日記ファイルリスト


Copyright(c) 1996,97,98,99,2000,01 George(小濱 純). All rights reserved.
私の作成したページは全部リンクフリーです。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。

[ホームページ] [日記] [読んでいる日記] [秋葉原価格] [FreeBSD] [FreeBSD LINK] [検索] [高速検索] [統合検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>