Hola, he visto muchos ejemplos como este en Cppreference.com:
std::is_class<T>
std::is_integral
Y así. Sé que si ejecuto el código, por ejemplo, obtengo trueo false. ¿Pero cuál es el punto en eso? por ejemplo, ¿saber que el objeto es de tipo de clase o no?
#include <iostream>
#include <type_traits>
struct A {};
class B {};
enum class C {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_class<A>::value << '\n';
std::cout << std::is_class<B>::value << '\n';
std::cout << std::is_class<C>::value << '\n';
std::cout << std::is_class<int>::value << '\n';
}
La salida:
true
true
false
false
He buscado por todas partes para un ejemplo real usando este (
is_class,is_integral,is_arithmetic, ...) Pero todos los tutoriales mostrar sólo la esperanza ejemplo: solamentetrueofalse.¿Alguien podría ayudarme con un pequeño ejemplo útil usando estas plantillas?
std::copy. ¿Qué pasa si los tipos astd::copyson "simples", como una matriz deintochar? Lo usaríasmemcpy, ¿verdad? Entonces, ¿cómo se dice "Si el tipo es simple, use memcpy, de lo contrario use un ciclo" lento "?