私は C++ で API に取り組んでおり、依存性注入機能を実装するために RTTI (ランタイム型情報) を使用しないように/本当に/懸命に努力しています。
私はこれを行うことができると信じていますが、テンプレートを利用することで--しかし、私は疑問に思いました:
テンプレートが「拡張」され、コンパイラによって実装される場合、テンプレート クラスがフレームワーク ライブラリに実装され、そのクラスのクライアントが上層ライブラリ?
ご協力いただきありがとうございます!
#include <string>
/************************************************************/
// Implemented in Framework.lib
namespace Framework
{
template<typename ShapeTemplateType>
class Utility
{
void Do()
{
ShapeTemplateType x;
(void) x;
}
};
} // End namespace Framework
/************************************************************/
// Implemented in Application.lib
namespace Application
{
class StateObject
{
int i;
};
class Facade
{
Framework::Utility<StateObject> state;
};
} // End Namespace Application
/********************************************************************/
// Implemented in Client
int main(int args, char* argv[])
{
Application::Facade facade;
//Derived d;
return 0;
}