La plantilla std::is_reference de C++ STL se utiliza para comprobar si el tipo es un tipo de referencia o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template <class T > struct is_reference;
Parámetro : esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es un tipo de referencia o no.
Valor de retorno : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es un tipo de referencia.
- Falso : si el tipo es un tipo sin referencia.
Los siguientes programas ilustran la plantilla std::is_reference en C++ STL:
Programa 1 :
// C++ program to illustrate // std::is_reference template #include <iostream> #include <type_traits> using namespace std; // main program class gfg { }; int main() { cout << boolalpha; cout << "is_reference: " << '\n'; cout << "gfg: " << is_reference<gfg>::value << '\n'; cout << "gfg&: " << is_reference<gfg&>::value << '\n'; cout << "gfg&&: " << is_reference<gfg&&>::value << '\n'; return 0; }
Producción:
is_reference: gfg: false gfg&: true gfg&&: true
Programa 2 :
// C++ program to illustrate // std::is_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_reference: " << '\n'; cout << "int: " << is_reference<int>::value << '\n'; cout << "int&: " << is_reference<int&>::value << '\n'; cout << "int&&: " << is_reference<int&&>::value << '\n'; cout << "char: " << is_reference<char>::value << '\n'; cout << "char&: " << is_reference<char&>::value << '\n'; cout << "char&&: " << is_reference<char&&>::value << '\n'; return 0; }
Producción:
is_reference: int: false int&: true int&&: true char: false char&: true char&&: true
Programa 3 :
// C++ program to illustrate // std::is_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_reference: " << '\n'; cout << "float: " << is_reference<float>::value << '\n'; cout << "float&: " << is_reference<float&>::value << '\n'; cout << "float&&: " << is_reference<float&&>::value << '\n'; cout << "double: " << is_reference<double>::value << '\n'; cout << "double&: " << is_reference<double&>::value << '\n'; cout << "double&&: " << is_reference<double&&>::value << '\n'; return 0; }
Producción:
is_reference: float: false float&: true float&&: true double: false double&: true 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