Hallo, ich habe viele Beispiele wie dieses in Cppreference.com gesehen:
std::is_class<T>
std::is_integral
Und so weiter. Ich weiß, ob ich den Code zum Beispiel bekomme trueoder bekomme false. Aber worum geht es dabei? zB zu wissen, dass das Objekt vom Klassentyp ist oder nicht?
#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';
}
Die Ausgabe:
true
true
false
false
Ich habe gesucht alle über ein reales Beispiel mit diesem (
is_class,is_integral,is_arithmetic, ...) Aber alle die Tutorials zeigen nur die hoffnungslos Beispiel: nurtruenochfalse.Könnte mir jemand mit einem kleinen nützlichen Beispiel helfen, das diese Vorlagen verwendet?
std::copy. Was ist, wenn die Typenstd::copy"einfach" sind, wie ein Array vonintoderchar? Sie würden verwendenmemcpy, richtig? Wie sagt man also "Wenn der Typ einfach ist, benutze memcpy, sonst benutze eine" langsame "Schleife"?