Доброго всем. Хочется такого изврата: есть некий класс, он может содержать несколько статических полей (объектов), причем в объектах важна только работа конструктора (регистрация объекта в статическом же векторе), кроме создания этих объектов они больше могут нигде не использоваться. Если «забыть» описать один из таких объектов в .cpp - линковщик молча проглотит (и в общем-то будет прав - зачем нужен объект, который никем не используется?). Как заставить его насильно референсить такие объекты? Типа такого:
class Foo
{
public:
static const MyObject Bar;
static const MyObject Baz;
};
const MyObject Foo::Bar;
// const MyObject Foo::Baz; // допустим забыли это написать. Надо чтобы компилер/линкер дал по рукам
Решения для C++11 и GCC-only - подходят.