我想创建一个单例类,将其称为global_references
,其中包含一堆缓存的全局值。单例类代码将从一组表中自动生成。一般方案是这样的:
struct global_references
{
some_type value1;
some_type value2;
some_type value3;
...
static const global_references& instance();
};
假设global_references::instance()
初始化各种valueN变量并返回单例实例。然后各种客户端将在自己的代码中使用缓存的值:
...
x = global_references::instance().value1;
我担心的是我会在表中添加用于生成自动生成的global_references
类的项目,但随着时间的推移,它们生成的一些符号将变得过时并停止在程序中使用。我想知道何时发生这种情况,最好让编译器或链接器抱怨关于未使用的符号,或者分配但从未使用过的值。这将提醒我从表中删除相应的项目。我也对任何其他相当简单的解决方案持开放态度。
我在Windows上使用MinGW [g ++ 4.6.2]。
我考虑过使成员函数返回值,但-Wunused-function
编译器选项仅适用于静态函数,而我需要global_references
作为模块化组件,我可以将其包含在任何翻译单元中
答案 0 :(得分:0)
使用-Wunused-but-set-variable,或更广泛的效果,-Wunused或-Wall。
答案 1 :(得分:0)
我不确定我是否了解你的目的。因此,每次向表中添加项后,您将重新编译项目代码以查找compile-warning未使用的内容。这听起来像是一种效率低下的方式。