0

我想做一个单例类,调用它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成为可以包含在任何翻译单元中的模块化组件。

4

2 回答 2

0

使用 -Wunused-but-set-variable,或者为了更广泛的效果,使用 -Wunused 或 -Wall。

于 2013-06-28T01:39:57.810 回答
0

我不确定我是否理解你的目的。所以,每次在表中添加项目后,都会重新编译项目代码,以查找编译警告未使用的内容。这听起来像是一种低效的方式。

于 2013-06-28T01:45:33.553 回答