我正在编写一些 C++ 函数,这些函数将生成这些函数以后可能会或可能不会处理的数据(但不会在其他任何地方处理)。这些功能是一些更高级别的 GUI 更改的“低级别”。
我目前将这些函数包装在一个单独的命名空间中,并声明了一个静态(内部链接)向量以在向量中包含这些对象(这些对象被定义为一个结构,也包含在命名空间中)。因此,一般结构:
namespace Foo
{
struct Bar
{
string data;
};
void func1();
void func2();
static std::vector<Bar> cachedBars;
}
我真的不需要为此上课,并且对求助于单身人士不感兴趣。这个解决方案是否足够?具体来说,内部链接命名空间范围集合是限制对该集合的访问以及避免所有全局变量陷阱的最佳方法,还是有更好的方法?