正直日記



2008/10/12

_ constメンバ関数が謎すぎて爆発しそうだ
メンバ変数の書き換えを保護するのはいいとして、参照なら OORU KOREKUTO と
いう挙動が解せない。

#include <iostream> struct test { test(int& var) : var(var) {} int& var; void write(const int number) const { var = number; } }; int main(int argc, char** argv) { int var = 0; test t(var); t.write(1); std::cout << var; return 0; }
int& var を int* var に置き換えても合法っぽいので、つまり保護されるのは 外側だけなのか。そとがかたくてなかはやわらかいものってなーんだ? 答え:沢山ありすぎるんだが
_ TOWNS を MIDI で 3 台つなげて FM18 PCM24 とかやったな
それだけトラックがあると自由度が高すぎて逆に生かしきれないという贅沢なジ
レンマを味わったのもいい思い出。あと、LAN とか無かったので、音色を同期さ
せるのが面倒だった。

という手前味噌な話はさておき。

PMDMX (P.M.D.Multiply-X) は、PMDWin.dllを複数モジュール読み込み、 4オペレータFM、SSG、PCMを発音させることの出来る、いわゆるFM音源 ドライバ。 PMDMX
PMD を並列に動かして多重演奏を可能にするシステムらしい。PMDWin で出力した Wave ファイルをミックスしても同じ効果は得られるけど、それを自動・簡便化す るツールみたい。 うーん、MML で 12+6+16 = 34 トラックを管理するのはしんどいかも……。 ちょっと使ってみて、ちょっと気づいたこと:  1. mx1 と mx2 の両方でテンポ指定をしないと同期しない  2. mcmx1.exe でプリコンパイル→分割された MML は二つとも大文字トラック になるので、大元の MML に 書くトラック拡張指定は #ppze STUVWXYZ #fm3e LMN となる。

> varはtestの外側にあるんだからそうなって問題ないと思いますが。>const  (2008/10/13 14:30:46)
>
constメンバ関数の中では int* が int * const になるのかー?的な連想で、
ポインタの指す中身→内側、ポインタ→外側のつもりで「外側」と書きました。
うーん、紛らわしかったです。今後気をつけます。

それにしても参照は手ごわいです。見た目が普通の変数と変わらんのが紛らわしい。
 (2008/10/13 22:07:50)

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12