5
가상 기능을 통해 완벽한 전달을 어떻게 활성화 할 수 있습니까? C++ 03처럼 모든 오버로드를 작성하고 싶지는 않습니다.완벽한 전달 - 가상 기능을 통해
가상 기능을 통해 완벽한 전달을 어떻게 활성화 할 수 있습니까? C++ 03처럼 모든 오버로드를 작성하고 싶지는 않습니다.완벽한 전달 - 가상 기능을 통해
수 없습니다. 완벽한 전달은 템플릿과 rvalue-references를 결합하여 작동합니다. 이는 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;
};
:
그러나 형식 삭제 메커니즘의 일종으로 문제를 해결할 수있을 수 있습니다