std::is_convertible - Type Trait
Açıklaması şöyle.
std::is_convertible'ı kullanmasını kolaylaştırmak için vardır. C++17 ile geliyor.
Örnek
Şöyle yaparız.
C++20 ile geliyor. Açıklaması şöyle. Nesnenin user defined conversion operator ile de çevrilip çevrilemeyeceğini kontrol eder
Şöyle yaparız. Burada From yapısı To yapısına implicit (üstü kapalı) şekilde de dönüştürülebiliyor.
Açıklaması şöyle.
std::is_convertible<From, To> (the type trait) checks is type From is implicitly convertible to type To.std::is_convertible_v - Type Trait
std::is_convertible'ı kullanmasını kolaylaştırmak için vardır. C++17 ile geliyor.
Örnek
Şöyle yaparız.
static_assert(std::is_convertible_v<decltype(callable), decltype(callback)>,
"Wrong Signature!");
std::convertible_to - ConceptC++20 ile geliyor. Açıklaması şöyle. Nesnenin user defined conversion operator ile de çevrilip çevrilemeyeceğini kontrol eder
std::convertible_to<From, To> (the concept) checks that From is both implicitly and explicitly convertible to ToÖrnek
Şöyle yaparız. Burada From yapısı To yapısına implicit (üstü kapalı) şekilde de dönüştürülebiliyor.
struct From;
struct To {
explicit To(From) = delete;
};
struct From {
operator To();
};
static_assert(std::is_convertible_v<From, To>);
static_assert(not std::convertible_to<From, To>);
Hiç yorum yok:
Yorum Gönder