12 Mart 2018 Pazartesi

std::is_trivially_copyable

Giriş
Belirtilen tipin std::memcpy ile kullanılıp kullanılamayacağını belirtir. Açıklaması şöyle
std::is_trivially_copyable, which allows use of memcpy for both making a new object and modifying an existing one.
Açıklaması şöyle.
A trivially copyable class is a class that
 Has no non-trivial copy constructors (this also requires no virtual functions or virtual bases)
 Has no non-trivial move constructors
 Has no non-trivial copy assignment operators
 Has no non-trivial move assignment operators
 Has a trivial destructor
Örnek
Şöyle yaparız
#include <iostream>
#include <type_traits>
#include <tuple>

std::cout << std::is_trivially_copyable<std::tuple<int>>::value << std::endl;
std::cout << std::is_trivially_copyable<std::pair<int, int>>::value << std::endl;
Çıktı olarak şunu alırız
0
0
0
0
Diğer
std::is_trivially_copyable_v metodu
Kodu şöyledir
template< class T >
inline constexpr bool is_trivially_copyable_v = is_trivially_copyable<T>::value; 

Hiç yorum yok:

Yorum Gönder