Bonjour, j'ai vu de nombreux exemples comme celui-ci sur Cppreference.com:
std::is_class
std::is_integral
Et ainsi de suite. Je sais que si je lance le code par exemple, j'obtiens true
ou false
. Mais en quoi est-ce utile? Par exemple, savoir si l'objet est de type classe ou non?
#include
#include
struct A {};
class B {};
enum class C {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_class::value << '\n';
std::cout << std::is_class::value << '\n';
std::cout << std::is_class::value << '\n';
std::cout << std::is_class::value << '\n';
}
**
La sortie:
true
true
false
false
-
J'ai cherché partout un exemple réel utilisant ceci (
is_class
,is_integral
,is_arithmetic
, ...) Mais tous les tutoriels montrent seulement l'exemple désespéré: seulementtrue
oufalse
. -
Quelqu'un pourrait-il m'aider avec un petit exemple utile utilisant ces templates?
**
1 votes
Un exemple simple -
std::copy
. Et si les types destd::copy
sont "simples", comme un tableau d'int
ou dechar
? Vous utiliseriezmemcpy
, n'est-ce pas? Alors comment dire "Si le type est simple, utilisez memcpy, sinon utilisez une boucle "lente" "?