Поделиться через


has_trivial_copy Class

Тесты если тип имеет тривиальный конструктор копий.

template<class Ty>
    struct has_trivial_copy;

Параметры

  • Ty
    Тип для запроса.

Заметки

Экземпляр предиката типа выполняются, если тип Ty класс, имеющий тривиальный конструктор копии, в противном случае он хранит false.

Конструктор копий для класса Ty тривиален, если:

неявно объявленная

класс Ty не имеет виртуальные функции

класс Ty не имеет базового виртуального

все объекты, непосредственно Ty базового класса имеют тривиальные конструкторов копии

классы всех статических элементов данных, отличного от типа класса, имеющих тривиальные конструкторов копии

классы всех статических элементов данных, отличного от типа класса массива имеют тривиальные конструкторов копии

Пример

 

// std_tr1__type_traits__has_trivial_copy.cpp 
// compile with: /EHsc 
#include <type_traits> 
#include <iostream> 
 
struct trivial 
    { 
    int val; 
    }; 
 
struct throws 
    { 
    throws() throw(int) 
        { 
        } 
 
    throws(const throws&) throw(int) 
        { 
        } 
 
    throws& operator=(const throws&) throw(int) 
        { 
        } 
 
    int val; 
    }; 
 
int main() 
    { 
    std::cout << "has_trivial_copy<trivial> == " << std::boolalpha 
        << std::has_trivial_copy<trivial>::value << std::endl; 
    std::cout << "has_trivial_copy<throws> == " << std::boolalpha 
        << std::has_trivial_copy<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Требования

заголовок: <type_traits>

std пространство имен:

См. также

Ссылки

<type_traits>

has_nothrow_copy Class