私はいくつかの C++ 関数を作成しています。これらの関数によって後で処理される場合と処理されない場合があるデータを生成します (ただし、他の場所では処理されません)。これらの関数は、一部の高レベルの GUI 変更の「低レベル」です。
現在、これらの関数を別の名前空間にラップしており、これらのオブジェクトをベクトル内に含める静的 (内部リンク) ベクトルを宣言しています (オブジェクトは構造体として定義され、名前空間にも含まれています)。したがって、一般的な構造は次のとおりです。
namespace Foo
{
struct Bar
{
string data;
};
void func1();
void func2();
static std::vector<Bar> cachedBars;
}
このためのクラスは本当に必要ありません。また、シングルトンに頼ることにも興味がありません。このソリューションで十分ですか? 具体的には、名前空間スコープのコレクションを内部的にリンクすることは、そのコレクションへのアクセスを制限し、グローバル変数のすべての落とし穴を回避するための最良の方法ですか、それともより良い方法はありますか?