你不能。完美转发只能通过组合模板和右值引用来工作,因为它取决于T&&
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;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
520 次 |
最近记录: |