2011-12-07 13 views
8

Duplicar posible:
What does T&& mean in C++0x?¿Qué significa && con un tipo de parámetro en C++?

que nunca había visto un signo doble antes de leer this answer.

El fragmento de código en cuestión es la siguiente:

template <typename T> 
T& as_lvalue(T&& x) 
{ 
    return x; 
} 

¿Qué logra &&? Qué tipos de parámetros se pueden pasar a as_lvalue()

+0

Son referencias rvalue. –

+2

Algún contexto sería útil en el título - Vine aquí esperando una discusión sobre los operadores lógicos. – Mac

Respuesta

3

Se llama rvalue reference, y es nuevo en C++ 11.

+5

que realmente no responde la pregunta - Tengo mucha experiencia en C++ antes de este nuevo estándar y mis ojos simplemente se nublan cuando leo la página de wikipedia. –

+3

El [artículo de MSDN sobre el operador rvalue] (http://msdn.microsoft.com/en-us/library/dd293668.aspx) es más extenso que el enlace de Wikipedia. – Barend

+0

@JasonS: se une a los temporales sin hacer una copia –

1

El uso más común es cortocircuito booleano y operador.

C++ 11 lo usa para referencias rvalue. Tu ejemplo usa eso.

Cuestiones relacionadas