.NetFramework 3.5 と WPF と C#3.0 とC++/CLI と Native C++を使って音楽アプリを作ってみる(17)

公開:2008-05-02 09:31
更新:2020-02-15 04:36
カテゴリ:windows

再生部分の実装中。
エフェクトコマンド処理の巨大なswitch文を、処理単位でクラスにしてptr_vectorコンテナに格納し、コマンドコードをindexにして呼び出すように変更を進めている。

http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/SFSoundLib/DotNet/?root=sfxmtracker


テンプレート主体でプログラミングをすると、メンバテンプレートなどは実際にインスタンス化し、使用しないとコンパイルされないので、明示的インスタンス化や実インスタンス生成などを行うテストコードを適宜作成し、きちんとコンパイルされるかチェックを行っている。
インスタンス生成のチェックをしないで単純にコンパイル->エラーチェックのみを実装時におこなっていると、コンパイルされないメンバテンプレート中のエラーが発見されずに放置され、後に作ったテンプレートクラスを使用して実装を行うとインスタンス生成部分やメンバ呼び出し部分で大量のコンパイルエラーが発生する羽目になる。
大量エラーが発生したときには既に最初に作ったテンプレートクラスの実装内容をすっかり忘れているので、BUGをつぶすのにとても時間がかかる。