テンプレート

擬似仮想関数テンプレート

たまに仮想関数をテンプレート関数にしたくなることがあるが、C++ではできない。 #include <iostream> #include <typeinfo> namespace lib { class IDynamicType { public: virtual ~IDynamicType() = default; template<typename StaticType> virtual void function(const StaticType &value) = 0; //</typename></typeinfo></iostream>…

DLLでLoki::SingletonHolderを使う場合の注意点

C++でSingletonクラスを作成するのに便利なのがLoki::SingletonHolderクラス。しかし、Loki::SingletonHolderはテンプレートクラスかつ静的メンバ変数でオブジェクトを管理しているため、ダイナミックリンクライブラリ(DLL)で使う場合には注意が必要だ。 …