La función std::is_function de C++ STL se usa para verificar si el tipo T dado es una función o no. Devuelve el valor booleano ya sea verdadero o falso. A continuación se muestra la sintaxis para el mismo:
Archivo de cabecera:
#include<type_traits>
Sintaxis:
template <class T> struct is_function;
Parámetro: La plantilla std::is_function acepta un único parámetro T (clase Trait) para comprobar si T es una función o no.
Valores devueltos:
- Verdadero: si T es un tipo de función.
- Falso: si T no es un tipo de función.
Los siguientes programas ilustran la plantilla std::is_function en C++ STL:
Programa 1:
// C++ program to illustrate // is_function template #include <bits/stdc++.h> #include <type_traits> using namespace std; struct GeeksforGeeks { int func() const&; }; template <typename> struct Computer { }; template <class A, class B> struct Computer<B A::*> { using member_type = B; }; int GFG(); int main() { cout << boolalpha; cout << is_function<GeeksforGeeks>::value << endl; cout << is_function<int(int)>::value << endl; cout << is_function<decltype(GFG)>::value << endl; cout << is_function<int>::value << endl; using A = Computer<decltype( &GeeksforGeeks::func)>::member_type; cout << is_function<A>::value << endl; return 0; }
Producción:
false true true false true
Programa 2:
// C++ program to illustrate // is_function template #include <bits/stdc++.h> #include <type_traits> using namespace std; struct GeeksforGeeks { int func() const&; }; template <typename> struct Computer { }; template <class A, class B> struct Computer<B A::*> { using member_type = B; }; int GFG(); int main() { cout << boolalpha; cout << is_function<int(int)>::value << endl; cout << is_function<GeeksforGeeks>::value << endl; cout << is_function<int>::value << endl; cout << is_function<decltype(GFG)>::value << endl; using A = Computer<decltype( &GeeksforGeeks::func)>::member_type; cout << is_function<A>::value << endl; return 0; }
Producción:
true false false true true
Referencia: http://www.cplusplus.com/reference/type_traits/is_function/
Publicación traducida automáticamente
Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA