まず、シングルトンの遅延初期化のパターンがとても気に入っています。次のように使用して、さまざまな値の型を持つさまざまな種類のデータを取得します (例は単純化されています)。
class A
{
    template<typename T>
    const T& getData() const
    {
        static T data;
        return data;
    }
}
data変数がクラスのどのインスタンスにも接続されておらず、プログラムが終了するまで存在することがわかっています。
しかし、私が今欲しいのは、クラス A の各インスタンスが非静的な方法で変数を保持する.getData<bool>()必要があることですクラス定義。
それは可能ですか?私はそれを実装するというアイデアを思いつきませんでした。
私は次のようなコンテナで何かを考えました:
template<A*, typename T>
class DataContainer
{
    T data;
}
これにより、コードを次のように拡張できます。
class A
{
    template<typename T>
    const T& getData() const
    {
        static DataContainer<this, T> container;
        return container.data;
    }
}
しかし、それはコンパイルされません。
あなたの誰かがそれを実装する方法を知っていますか?