これで寝てみましたが、それでも負けました。どの検索語句を使用すればよいかさえわかりません。誰かが私を正しい方向に向けることができますか?
私はこのようなものが欲しい:
template < typename Interim >
class phase_one
{
Interim do_something () ;
}
template < typename Output, typename Interim >
class phase_two
{
Output do_something_more ( Interim ) ;
}
template < Output >
class main_class
{
phase_one m_first;
phase_two m_second;
Output do_main ( )
{
return m_second.dosomething_more( m_first.do_something() );
}
}
疑似コードから、両方のテンプレート クラスを保存して呼び出す必要があることがわかります。ただし、Interim
型は実行時までわかりません。私が事前に知っている唯一のことは、Output
タイプと、両方のフェーズに共通のタイプがあるという事実です。
これらのオブジェクトをどのように保管し、どのように連携させることができますか? これは型消去が必要なインスタンスですか?
編集:
私の作成の別のものにphase_one
なります。に基づいて選択する必要があります。そして、これはすべて、ファイルの BOM を読み取った後、実行時に行われます。std::codecvt
phase_two
codecvt
phase_two
phase_one
ブーストまたはc ++ 11なしでこれを行うことをお勧めします。これを行うためのブースト方法がある場合は、それを見たいと思いますが、同様の方法/テンプレートを自分で作成する必要がある場合でも、ブースト ライブラリがなくても実装できる必要があります。