is_lvalue_reference-Vorlage in C++
Das std::is_lvalue_reference-Template von C++ STL wird verwendet, um zu prüfen, ob der Typ ein lvalue-Referenztyp ist oder nicht. Es gibt einen booleschen Wert zurück, der dasselbe zeigt.
Syntax :
template <class T > struct is_lvalue_reference;
Vorlagenparameter : Diese Vorlage akzeptiert einen einzelnen Parameter T (Trait-Klasse) , um zu prüfen, ob T ein lvalue-Referenztyp ist oder nicht.
Rückgabewert : Diese Vorlage gibt einen booleschen Wert wie unten gezeigt zurück:
- True : wenn der Typ eine lvalue_reference ist.
- False : wenn der Typ eine Nicht-lvalue_reference ist.
Die folgenden Programme veranschaulichen das std::is_lvalue_reference-Template in C++ STL:
Programm 1 :
// C++ program to illustrate // std::is_lvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program class gfg { }; int main() { cout << std::boolalpha; cout << "is_lvalue_reference: " << '\n'; cout << "gfg: " << is_lvalue_reference<gfg>::value << '\n'; cout << "gfg&: " << is_lvalue_reference<gfg&>::value << '\n'; cout << "gfg&&: " << is_lvalue_reference<gfg&&>::value << '\n'; return 0; }
Ausgabe:
is_lvalue_reference: gfg: falsch gfg&: wahr gfg&&: falsch
Programm 2 :
// C++ program to illustrate // std::is_lvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_lvalue_reference: " << '\n'; cout << "int: " << is_lvalue_reference<int>::value << '\n'; cout << "int&: " << is_lvalue_reference<int&>::value << '\n'; cout << "int&&: " << is_lvalue_reference<int&&>::value << '\n'; cout << "char: " << is_lvalue_reference<char>::value << '\n'; cout << "char&: " << is_lvalue_reference<char&>::value << '\n'; cout << "char&&: " << is_lvalue_reference<char&&>::value << '\n'; return 0; }
Ausgabe:
is_lvalue_reference: int: falsch int&: wahr int&&: falsch Zeichen: falsch Zeichen&: wahr Zeichen&&: falsch
Programm 3 :
// C++ program to illustrate // std::is_lvalue_reference template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_lvalue_reference: " << '\n'; cout << "float: " << is_lvalue_reference<float>::value << '\n'; cout << "float&: " << is_lvalue_reference<float&>::value << '\n'; cout << "float&&: " << is_lvalue_reference<float&&>::value << '\n'; cout << "double: " << is_lvalue_reference<double>::value << '\n'; cout << "double&: " << is_lvalue_reference<double&>::value << '\n'; cout << "double&&: " << is_lvalue_reference<double&&>::value << '\n'; return 0; }
Ausgabe:
is_lvalue_reference: Schwimmer: falsch float&: wahr float&&: falsch doppelt: falsch doppelt&: wahr double&&: falsch