5
バーチャルファンクションによる完全転送を有効にするにはどうすればよいですか?私は本当にC++ 03のようにすべてのオーバーロードを書く必要はありません。パーフェクトフォワーディング - バーチャルファンクション
バーチャルファンクションによる完全転送を有効にするにはどうすればよいですか?私は本当にC++ 03のようにすべてのオーバーロードを書く必要はありません。パーフェクトフォワーディング - バーチャルファンクション
できません。完璧な転送は、Tが特殊化されたときにどのような種類の実数型が評価されるかによって異なります。テンプレートと仮想関数を混在させることはできません。
ただし、型消去メカニズムのいくつかの種類によって、あなたの問題を解決することができるかもしれないことができます。
struct base {
virtual void invoke() = 0;
};
template <class T>
struct derived : public base {
derived(T&& yourval) : m_value(std::forward(yourval)) {}
virtual void invoke() { /* operate on m_value.. */ }
T&& m_value;
};