すべてのインスタンスのコレクションを含む一種のファクトリ クラスはどうでしょうか。
何かのようなもの:
template<typename T>
class least_one_factory
{
    static std::vector<T> instances_;
public:
    least_one_factory()
    {
        // Make sure there is an instance of `T` in our collection
        instance_.push_back(T());
    }
    T& get()
    {
        return instances_.front();
    }
    T& get(int n)
    {
        return instances_.at(n);
    }
    T& create()
    {
        instances_.push_back(T());
        return instances_.back();
    }
    int count() const
    {
        return instances_.size();
    }
    operator T&()
    {
        return get();
    }
};
template<typename T>
std::vector<T> least_one_factory<T>::instances_;
これで、次のことができます。
struct some_class {};
least_one_factory<some_class> some_class_factory;
変数には、 の少なくとも1 つのインスタンスsome_class_factoryが含まれます。で取得できます。がグローバル変数の場合、 が呼び出される前にプログラムがロードされたときに のインスタンスが作成されます。some_classsome_class_factory.get()some_class_factorysome_classmain