Halo Saya telah melihat banyak contoh seperti ini di Cppreference.com:
std::is_class<T>
std::is_integral
Dan seterusnya. Saya tahu jika saya menjalankan kode misalnya saya dapatkan true
atau false
. Tapi apa gunanya itu? misal mengetahui objek bertipe kelas atau tidak?
#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';
}
Hasil:
true
true
false
false
Saya sudah mencari di seluruh untuk contoh nyata menggunakan ini (
is_class
,is_integral
,is_arithmetic
, ...) Tapi semua tutorial hanya menampilkan contoh harapan: hanyatrue
ataufalse
.Adakah yang bisa membantu saya dengan contoh kecil yang bermanfaat menggunakan templat ini?
std::copy
. Bagaimana jika jenisnyastd::copy
"sederhana", seperti arrayint
atauchar
? Anda akan menggunakanmemcpy
, kan? Jadi, bagaimana Anda mengatakan "Jika tipenya sederhana, gunakan memcpy, kalau tidak gunakan loop" lambat "?