Bonjour, j'ai vu de nombreux exemples comme celui-ci dans Cppreference.com:
std::is_class<T>
std::is_integral
Etc. Je sais que si j'exécute le code, par exemple, j'obtiens true
ou false
. Mais à quoi ça sert? Par exemple, savoir que l'objet est de type classe ou non?
#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';
}
Le résultat:
true
true
false
false
Je l' ai cherché partout pour un exemple réel en utilisant cette (
is_class
,is_integral
,is_arithmetic
, ...) Mais tous les tutoriels ne montre que l'exemple sans espoir: quetrue
oufalse
.Quelqu'un pourrait-il m'aider avec un petit exemple utile en utilisant ces modèles?
std::copy
. Et si les types àstd::copy
sont "simples", comme un tableau deint
ouchar
? Vous utiliseriezmemcpy
, non? Alors, comment dites-vous "Si le type est simple, utilisez memcpy, sinon utilisez une boucle" lente ""?