Olá, já vi muitos exemplos como este no Cppreference.com:
std::is_class<T>
std::is_integral
E assim por diante. Eu sei se eu executo o código, por exemplo, recebo trueor false. Mas qual é o sentido disso? por exemplo, sabendo que o objeto é do tipo classe ou não?
#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';
}
A saída:
true
true
false
false
Eu procurei todo para um exemplo real usando essa (
is_class,is_integral,is_arithmetic, ...) Mas todos os tutoriais mostrar apenas o exemplo desesperada: únicatrueoufalse.Alguém poderia me ajudar com um pequeno exemplo útil usando esses modelos?
std::copy. E se os tiposstd::copysão "simples", como uma matriz deintouchar? Você usariamemcpy, certo? Então, como você diz "Se o tipo é simples, use memcpy, caso contrário, use um loop" lento ""?