http://www.kmonos.net/alang/cpp/glossary.html#NTPNTPの概念は上記のページを見ていただければ分かると思いますが,その実装方法について,上記ページのようなsmart_ptrを作ると仮定して説明してみます.今回達成したいことは, template class smart_ptr; のtemplate parameterから, policy_selector::owner_ship のように,必要なpolicyを取り出すことです.まず,policy_selectorを次のように書きます. template struct discriminator : public Base { }; template struct policy_selector : discriminator, discriminator, discriminator {