La plantilla std::boost::is_array de Boost C++ Library se usa para verificar si el tipo dado es un tipo de array o no. Devuelve un valor booleano que muestra lo mismo.
Archivos de encabezado:
#include "boost/type_traits/is_array.hpp" or #include "boost/type_traits.hpp"
Clase de plantilla:
template <class T> struct is_array : public true_type-or-false_type {};
Si T es un tipo de array, hereda de tipo_verdadero; de lo contrario, hereda de tipo_falso.
Sintaxis:
boost::integral_constant ::value boost::integral_constant ::value_type boost::integral_constant ::type
Parámetro: esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es un tipo de puntero o no.
Argumentos aceptados:
typename T volatile T [] const volatile T [] const T [] T [] const volatile T[N] volatile T [N] const T [N] T [N]
Valor devuelto: esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero: si el tipo es un valor de puntero.
- Falso: si el tipo no es un valor de puntero.
Los siguientes programas ilustran la plantilla std::boost::type_traits::is_array :
Programa 1:
// C++ program to illustrate std::is_array template #include <bits/stdc++.h> #include <boost/type_traits/is_array.hpp> #include <boost/typeof/typeof.hpp> using namespace std; // Main Program int main() { cout << "is_array: \n"; cout << "int[]: " << boost::is_array<int[]>::value << "\n"; cout << "char[]: " << "boost::is_array<char[]>::value" << "\n"; cout << "double[20]: " << boost::is_array<double[20]>::value << "\n"; cout << "float[30]: " << boost::is_array<float[30]>::value << "\n"; cout << "bool[][6]: " << boost::is_array<bool[][6]>::value << "\n"; cout << "long[56][34][98]: " << boost::is_array<long[56][34][98]>::value << "\n"; bool a[98]; cout << "bool a[98]: " << boost::is_array<decltype(a)>::value << "\n"; char c[0]; cout << "char c[0]: " << boost::is_array<decltype(c)>::value << "\n"; return 0; }
is_array: int[]: 1 char[]: boost::is_array::value double[20]: 1 float[30]: 1 bool[][6]: 1 long[56][34][98]: 1 bool a[98]: 1 char c[0]: 0
Programa 2:
// C++ program to illustrate std::is_array template #include <bits/stdc++.h> #include <boost/type_traits/is_array.hpp> #include <boost/typeof/typeof.hpp> using namespace std; // A Structure struct sturec { int x, y; float a, b; long t[90]; }; // A Class class student { private: string name; int roll_no; public: student(string name, int roll_no); string studentName(int roll_no); }; // Parameterized Constructor student::student(string name, int roll_no) { this->name = name; this->roll_no = roll_no; } // Function that return the name // of the student string student::studentName(int roll_no) { return this->name; } // Main Program int main() { cout << "is_array: \n"; sturec s; sturec p[3]; cout << "instance of structure: " << boost::is_array<decltype(s)>::value << "\n"; cout << "array of structure: " << boost::is_array<decltype(p)>::value << "\n"; // Instance of Class student S("GeeksforGeeks", 11840520); cout << "instance of a class: " << boost::is_array<decltype(S)>::value << "\n"; // Array of Class student a[3] = { { "Abc Def", 11840820 }, { "Xyz Xyz", 11840220 }, { "ABcd Gfgh", 11840950 } }; cout << "array of a class: " << boost::is_array<decltype(a)>::value << "\n"; return 0; }
is_array: instance of structure: 0 array of structure: 1 instance of a class: 0 array of a class: 1
Publicación traducida automáticamente
Artículo escrito por dahalegopal27 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA