global_references
キャッシュされたグローバル値の束を含むシングルトン クラスを作成したいと思います。シングルトン クラス コードは、一連のテーブルから自動的に生成されます。一般的なスキームは次のようなものです。
global_references.h
struct global_references
{
some_type value1;
some_type value2;
some_type value3;
...
static const global_references& instance();
};
global_references::instance()
がさまざまな valueN 変数を初期化し、シングルトン インスタンスを返すとします。次に、さまざまなクライアントが独自のコードでキャッシュされた値を使用します。
some_translation_unit.cpp
...
x = global_references::instance().value1;
私の懸念は、自動生成されたglobal_references
クラスを生成するために使用されるテーブルにアイテムを追加することですが、時間の経過とともに、それらが生成するシンボルの一部が時代遅れになり、プログラムで使用されなくなることです。これがいつ発生するかを知りたいのですが、できればコンパイラまたはリンカーに、未使用のシンボル、または割り当てられているが使用されていない値について文句を言わせてください。これにより、テーブルから対応するアイテムを削除するように促されます。また、他の合理的に単純なソリューションにもオープンです。
WindowsでMinGW [g++ 4.6.2]を使用しています。
すでに検討されているオプション
値を返すメンバー関数を作成することを考えましたが、-Wunused-function
コンパイラ オプションは静的関数でのみ機能しますglobal_references
が、任意の翻訳単位に含めることができるモジュラー コンポーネントである必要があります。