私は何らかの種類のDIコンテナをC++で書いています。現代のC++のエイリアスを別のタイプから別のエイリアスにすることができれば興味があります。 私が基本的にしたいことは、エイリアスインターフェイスで実装コンストラクタを呼び出すことができることです。これと同じように:あるタイプから別のタイプへのエイリアスの作成
di::Register<Interface, Impl>();
di::Resolve<Interface>(); // -> Impl should be resolved
問題は、私がこれまでにコンパイル時にエイリアスインターフェイスとImplをする方法を見つけることができなかったことです。私はRTTIを使ってこれを行うことができますが、実際には使用したくありません。まったく可能ですか?
あなたがかもしれません[\ [Boost \] .DI](https://github.com/boost-experimental/di)のようなものを通して楽しく読んでください。 – chris
実際に私の[DIコンテナライブラリ](https://github.com/gracicot/kangaru/wiki/03.-Override-Services#default-service-type)で 'kgr :: Default'を使って非常によく似たものを作成しました –
@GuillaumeRacicotはい、しかし、私はこのケースで継承を使用したくない、私はそれが非常にかさばるインターフェイスを作ると思う。 – s0nicYouth