最近の悩み

前回の記事のクラスのお陰で製作中のライブラリの問題を半分ぐらい駆逐できました。

という訳でいい加減にサウンドライブラリの作成を始めてます。

std::unique_ptrのお陰で相当楽できてますが、デリータを指定すると変数型が以上に長い。ボイス用のやつを用意しようと思うと、

struct voice_deleter
{
    void operator()( IXAudio2SourceVoice* voice ) { if( voice ){ voice->DestroyVoice(); }; };
};

std::unique_ptr< IXAudio2SourceVoice, voice_deleter > source_voice;

といった感じで凄く長い。
なので、私はクラスのメンバであれば中で基本的にtypedefをしてしまう人です。
自分ルールとして、typedefで名前付けた奴は*_typeという名前にしています。
reference, pointerなどはもちろん例外ですが。

悩みってのはそれそのものでして、それが「悪いtypedef」になってないか心配ってことです。
クラス内の変数宣言として使うための場合ぐらいしか私はtypedefを使わないので、まだ影響は少ないのかな、と思うのですが。
これが複数の翻訳単位で使用されるようなものだとちょっと危ないのかもしれない。
この辺は調べてみる価値ありですね。