¿Cómo puedo habilitar el reenvío perfecto a través de una función virtual? Realmente no deseo escribir cada sobrecarga como en C++ 03.Reenvío perfecto: a través de funciones virtuales
5
A
Respuesta
3
No puede. El reenvío perfecto solo funciona al combinar plantillas y referencias rvalue, porque depende de qué tipo de tipo real se evalúe T&&
cuando T esté especializado. No puede mezclar plantillas y funciones virtuales.
Sin embargo, puede puede ser capaz de resolver su problema por algún tipo de mecanismo de tipo de borrado:
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;
};
Cuestiones relacionadas
- 1. Plantillas variables, reenvío perfecto a funciones con argumentos predeterminados
- 2. Reenvío perfecto: ¿de qué se trata?
- 3. C++: funciones virtuales privadas, frente a las funciones virtuales puras
- 4. Evitar funciones virtuales
- 5. Reenvío perfecto y std :: tuple (u otra clase con plantilla)
- 6. encasillamiento con funciones virtuales
- 7. con funciones virtuales
- 8. Funciones virtuales y rendimiento C++
- 9. funciones virtuales de objetos rebanar
- 10. C++ Implementación de funciones virtuales?
- 11. anulación de funciones no virtuales
- 12. Reenvío de eventos de mouse a través de layers/divs
- 13. funciones virtuales en C Objetivo
- 14. funciones virtuales estáticos en C++
- 15. ¿Por qué usar funciones virtuales?
- 16. ¿El reenvío perfecto en C++ 0x hace que reference_wrapper esté en desuso?
- 17. Paso perfecto
- 18. ¿Por qué las funciones virtuales en C++ se llaman 'virtuales'?
- 19. Herencia de diamantes y funciones virtuales puras
- 20. Variable de referencia y funciones virtuales
- 21. Llamada a funciones virtuales utilizando el objeto de desreferencia
- 22. Punteros a funciones de miembros virtuales. ¿Como funciona?
- 23. Tipo de devolución diferente para funciones virtuales
- 24. Cómo crear un constructor de reenvío perfecto para una clase variable tuple
- 25. Requerir funciones virtuales anuladas para llamar a implementaciones base
- 26. ¿Cómo establecer la alineación para funciones virtuales?
- 27. argumentos variables en funciones de reenvío en D
- 28. C++ pregunta sobre polimorfismo/herencia: redefinición de funciones base frente a funciones virtuales
- 29. makefile perfecto
- 30. Sobrecarga de la herencia de C++ sin funciones virtuales