La plantilla std::is_rvalue_reference de C++ STL se utiliza para comprobar si el tipo es un tipo de referencia de valor r o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template <class T > struct is_rvalue_reference;
Parámetros : esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es un tipo de referencia de valor r.
Valor devuelto : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es un tipo rvalue_reference.
- Falso : si el tipo es un tipo que no es rvalue_reference.
Los siguientes programas ilustran la plantilla std::is_lvalue_reference en C++ STL:
Programa 1 :
// C++ program to illustrate // std::is_rvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program class gfg { }; int main() { cout << std::boolalpha; cout << "is_rvalue_reference: " << '\n'; cout << "gfg: " << is_rvalue_reference<gfg>::value << '\n'; cout << "gfg&: " << is_rvalue_reference<gfg&>::value << '\n'; cout << "gfg&&: " << is_rvalue_reference<gfg&&>::value << '\n'; return 0; }
Producción:
is_rvalue_reference: gfg: false gfg&: false gfg&&: true
Programa 2 :
// C++ program to illustrate // std::is_rvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << std::boolalpha; cout << "is_rvalue_reference: " << '\n'; cout << "int: " << is_rvalue_reference<int>::value << '\n'; cout << "int&: " << is_rvalue_reference<int&>::value << '\n'; cout << "int&&: " << is_rvalue_reference<int&&>::value << '\n'; cout << "char: " << is_rvalue_reference<char>::value << '\n'; cout << "char&: " << is_rvalue_reference<char&>::value << '\n'; cout << "char&&: " << is_rvalue_reference<char&&>::value << '\n'; return 0; }
Producción:
is_rvalue_reference: int: false int&: false int&&: true char: false char&: false char&&: true
Programa 3 :
// C++ program to illustrate // std::is_rvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << std::boolalpha; cout << "is_rvalue_reference: " << '\n'; cout << "float: " << is_rvalue_reference<float>::value << '\n'; cout << "float&: " << is_rvalue_reference<float&>::value << '\n'; cout << "float&&: " << is_rvalue_reference<float&&>::value << '\n'; cout << "double: " << is_rvalue_reference<double>::value << '\n'; cout << "double&: " << is_rvalue_reference<double&>::value << '\n'; cout << "double&&: " << is_rvalue_reference<double&&>::value << '\n'; return 0; }
Producción:
is_rvalue_reference: float: false float&: false float&&: true double: false double&: false double&&: true
Publicación traducida automáticamente
Artículo escrito por rajasethupathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA