Ciao, ho visto molti esempi come questo in Cppreference.com:
std::is_class<T>
std::is_integral
E così via. So se eseguo il codice per esempio ottengo true
o false
. Ma che senso ha questo? ad esempio sapere che l'oggetto è di tipo classe 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';
}
Il risultato:
true
true
false
false
Ho cercato dappertutto per un esempio reale di utilizzare questo (
is_class
,is_integral
,is_arithmetic
, ...) Ma tutti i tutorial mostrano solo l'esempio senza speranza: solotrue
ofalse
.Qualcuno potrebbe aiutarmi con un piccolo esempio utile usando questi modelli?
std::copy
. E se i tipi fosserostd::copy
"semplici", come una matrice diint
ochar
? Userestimemcpy
, vero? Quindi, come si dice "Se il tipo è semplice, utilizzare memcpy, altrimenti utilizzare un ciclo" lento "?