struct NonPOD { NonPOD(int); };

// PODs
enum Enum { EV };
struct POD { Enum e; int i; float f; NonPOD* p; };
struct Empty {};
typedef Empty EmptyAr[10];
typedef int Int;
typedef Int IntAr[10];
typedef Int IntArNB[];
class Statics { static int priv; static NonPOD np; };
union EmptyUnion {};
union Union { int i; float f; };
struct HasFunc { void f (); };
struct HasOp { void operator *(); };
struct HasConv { operator int(); };
struct HasAssign { void operator =(int); };

struct HasAnonymousUnion {
  union {
    int i;
    float f;
  };
};

typedef int Vector __attribute__((vector_size(16)));
typedef int VectorExt __attribute__((ext_vector_type(4)));

// Not PODs
typedef const void cvoid;
struct Derives : POD {};
typedef Derives DerivesAr[10];
typedef Derives DerivesArNB[];
struct DerivesEmpty : Empty {};
struct HasCons { HasCons(int); };
struct HasCopyAssign { HasCopyAssign operator =(const HasCopyAssign&); };
struct HasMoveAssign { HasMoveAssign operator =(const HasMoveAssign&&); };
struct HasNoThrowMoveAssign {
  HasNoThrowMoveAssign& operator=(
    const HasNoThrowMoveAssign&&) throw(); };
struct HasNoExceptNoThrowMoveAssign {
  HasNoExceptNoThrowMoveAssign& operator=(
    const HasNoExceptNoThrowMoveAssign&&) noexcept;
};
struct HasThrowMoveAssign {
  HasThrowMoveAssign& operator=(
    const HasThrowMoveAssign&&) throw(POD); };
struct HasNoExceptFalseMoveAssign {
  HasNoExceptFalseMoveAssign& operator=(
    const HasNoExceptFalseMoveAssign&&) noexcept(false); };
struct HasMoveCtor { HasMoveCtor(const HasMoveCtor&&); };
struct HasMemberMoveCtor { HasMoveCtor member; };
struct HasMemberMoveAssign { HasMoveAssign member; };
struct HasStaticMemberMoveCtor { static HasMoveCtor member; };
struct HasStaticMemberMoveAssign { static HasMoveAssign member; };
struct HasMemberThrowMoveAssign { HasThrowMoveAssign member; };
struct HasMemberNoExceptFalseMoveAssign {
  HasNoExceptFalseMoveAssign member; };
struct HasMemberNoThrowMoveAssign { HasNoThrowMoveAssign member; };
struct HasMemberNoExceptNoThrowMoveAssign {
  HasNoExceptNoThrowMoveAssign member; };

struct HasDefaultTrivialCopyAssign {
  HasDefaultTrivialCopyAssign &operator=(
    const HasDefaultTrivialCopyAssign&) = default;
};
struct TrivialMoveButNotCopy {
  TrivialMoveButNotCopy &operator=(TrivialMoveButNotCopy&&) = default;
  TrivialMoveButNotCopy &operator=(const TrivialMoveButNotCopy&);
};
struct NonTrivialDefault {
  NonTrivialDefault();
};

struct HasDest { ~HasDest(); };
class  HasPriv { int priv; };
class  HasProt { protected: int prot; };
struct HasRef { int i; int& ref; HasRef() : i(0), ref(i) {} };
struct HasNonPOD { NonPOD np; };
struct HasVirt { virtual void Virt() {}; };
typedef NonPOD NonPODAr[10];
typedef HasVirt VirtAr[10];
typedef NonPOD NonPODArNB[];
union NonPODUnion { int i; Derives n; };
struct DerivesHasCons : HasCons {};
struct DerivesHasCopyAssign : HasCopyAssign {};
struct DerivesHasMoveAssign : HasMoveAssign {};
struct DerivesHasDest : HasDest {};
struct DerivesHasPriv : HasPriv {};
struct DerivesHasProt : HasProt {};
struct DerivesHasRef : HasRef {};
struct DerivesHasVirt : HasVirt {};
struct DerivesHasMoveCtor : HasMoveCtor {};

struct HasNoThrowCopyAssign {
  void operator =(const HasNoThrowCopyAssign&) throw();
};
struct HasMultipleCopyAssign {
  void operator =(const HasMultipleCopyAssign&) throw();
  void operator =(volatile HasMultipleCopyAssign&);
};
struct HasMultipleNoThrowCopyAssign {
  void operator =(const HasMultipleNoThrowCopyAssign&) throw();
  void operator =(volatile HasMultipleNoThrowCopyAssign&) throw();
};

struct HasNoThrowConstructor { HasNoThrowConstructor() throw(); };
struct HasNoThrowConstructorWithArgs {
  HasNoThrowConstructorWithArgs(HasCons i = HasCons(0)) throw();
};

struct HasNoThrowCopy { HasNoThrowCopy(const HasNoThrowCopy&) throw(); };
struct HasMultipleCopy {
  HasMultipleCopy(const HasMultipleCopy&) throw();
  HasMultipleCopy(volatile HasMultipleCopy&);
};
struct HasMultipleNoThrowCopy {
  HasMultipleNoThrowCopy(const HasMultipleNoThrowCopy&) throw();
  HasMultipleNoThrowCopy(volatile HasMultipleNoThrowCopy&) throw();
};

struct HasVirtDest { virtual ~HasVirtDest(); };
struct DerivedVirtDest : HasVirtDest {};
typedef HasVirtDest VirtDestAr[1];

class AllPrivate {
  AllPrivate() throw();
  AllPrivate(const AllPrivate&) throw();
  AllPrivate &operator=(const AllPrivate &) throw();
  ~AllPrivate() throw();
};

struct ThreeArgCtor {
  ThreeArgCtor(int*, char*, int);
};

void is_pod()
{
  { int arr[T(__is_pod(int))]; }
  { int arr[T(__is_pod(Enum))]; }
  { int arr[T(__is_pod(POD))]; }
  { int arr[T(__is_pod(Int))]; }
  { int arr[T(__is_pod(IntAr))]; }
  { int arr[T(__is_pod(Statics))]; }
  { int arr[T(__is_pod(Empty))]; }
  { int arr[T(__is_pod(EmptyUnion))]; }
  { int arr[T(__is_pod(Union))]; }
  { int arr[T(__is_pod(HasFunc))]; }
  { int arr[T(__is_pod(HasOp))]; }
  { int arr[T(__is_pod(HasConv))]; }
  { int arr[T(__is_pod(HasAssign))]; }
  { int arr[T(__is_pod(IntArNB))]; }
  { int arr[T(__is_pod(HasAnonymousUnion))]; }
  { int arr[T(__is_pod(Vector))]; }
  { int arr[T(__is_pod(VectorExt))]; }
  { int arr[T(__is_pod(Derives))]; }
  { int arr[T(__is_pod(DerivesAr))]; }
  { int arr[T(__is_pod(DerivesArNB))]; }
  { int arr[T(__is_pod(DerivesEmpty))]; }
  { int arr[T(__is_pod(HasPriv))]; }
  { int arr[T(__is_pod(HasProt))]; }
  { int arr[T(__is_pod(DerivesHasPriv))]; }
  { int arr[T(__is_pod(DerivesHasProt))]; }

  { int arr[F(__is_pod(HasCons))]; }
  { int arr[F(__is_pod(HasCopyAssign))]; }
  { int arr[F(__is_pod(HasMoveAssign))]; }
  { int arr[F(__is_pod(HasDest))]; }
  { int arr[F(__is_pod(HasRef))]; }
  { int arr[F(__is_pod(HasVirt))]; }
  { int arr[F(__is_pod(DerivesHasCons))]; }
  { int arr[F(__is_pod(DerivesHasCopyAssign))]; }
  { int arr[F(__is_pod(DerivesHasMoveAssign))]; }
  { int arr[F(__is_pod(DerivesHasDest))]; }
  { int arr[F(__is_pod(DerivesHasRef))]; }
  { int arr[F(__is_pod(DerivesHasVirt))]; }
  { int arr[F(__is_pod(NonPOD))]; }
  { int arr[F(__is_pod(HasNonPOD))]; }
  { int arr[F(__is_pod(NonPODAr))]; }
  { int arr[F(__is_pod(NonPODArNB))]; }
  { int arr[F(__is_pod(void))]; }
  { int arr[F(__is_pod(cvoid))]; }
// { int arr[F(__is_pod(NonPODUnion))]; }
}

typedef Empty EmptyAr[10];
struct Bit0 { int : 0; };
struct Bit0Cons { int : 0; Bit0Cons(); };
struct BitOnly { int x : 3; };
struct DerivesVirt : virtual POD {};

void is_empty()
{
  { int arr[T(__is_empty(Empty))]; }
  { int arr[T(__is_empty(DerivesEmpty))]; }
  { int arr[T(__is_empty(HasCons))]; }
  { int arr[T(__is_empty(HasCopyAssign))]; }
  { int arr[T(__is_empty(HasMoveAssign))]; }
  { int arr[T(__is_empty(HasDest))]; }
  { int arr[T(__is_empty(HasFunc))]; }
  { int arr[T(__is_empty(HasOp))]; }
  { int arr[T(__is_empty(HasConv))]; }
  { int arr[T(__is_empty(HasAssign))]; }
  { int arr[T(__is_empty(Bit0))]; }
  { int arr[T(__is_empty(Bit0Cons))]; }

  { int arr[F(__is_empty(Int))]; }
  { int arr[F(__is_empty(POD))]; }
  { int arr[F(__is_empty(EmptyUnion))]; }
  { int arr[F(__is_empty(EmptyAr))]; }
  { int arr[F(__is_empty(HasRef))]; }
  { int arr[F(__is_empty(HasVirt))]; }
  { int arr[F(__is_empty(BitOnly))]; }
  { int arr[F(__is_empty(void))]; }
  { int arr[F(__is_empty(IntArNB))]; }
  { int arr[F(__is_empty(HasAnonymousUnion))]; }
//  { int arr[F(__is_empty(DerivesVirt))]; }
}

typedef Derives ClassType;

void is_class()
{
  { int arr[T(__is_class(Derives))]; }
  { int arr[T(__is_class(HasPriv))]; }
  { int arr[T(__is_class(ClassType))]; }
  { int arr[T(__is_class(HasAnonymousUnion))]; }

  { int arr[F(__is_class(int))]; }
  { int arr[F(__is_class(Enum))]; }
  { int arr[F(__is_class(Int))]; }
  { int arr[F(__is_class(IntAr))]; }
  { int arr[F(__is_class(DerivesAr))]; }
  { int arr[F(__is_class(Union))]; }
  { int arr[F(__is_class(cvoid))]; }
  { int arr[F(__is_class(IntArNB))]; }
}

typedef Union UnionAr[10];
typedef Union UnionType;

void is_union()
{
  { int arr[T(__is_union(Union))]; }
  { int arr[T(__is_union(UnionType))]; }

  { int arr[F(__is_union(int))]; }
  { int arr[F(__is_union(Enum))]; }
  { int arr[F(__is_union(Int))]; }
  { int arr[F(__is_union(IntAr))]; }
  { int arr[F(__is_union(UnionAr))]; }
  { int arr[F(__is_union(cvoid))]; }
  { int arr[F(__is_union(IntArNB))]; }
  { int arr[F(__is_union(HasAnonymousUnion))]; }
}

typedef Enum EnumType;

void is_enum()
{
  { int arr[T(__is_enum(Enum))]; }
  { int arr[T(__is_enum(EnumType))]; }

  { int arr[F(__is_enum(int))]; }
  { int arr[F(__is_enum(Union))]; }
  { int arr[F(__is_enum(Int))]; }
  { int arr[F(__is_enum(IntAr))]; }
  { int arr[F(__is_enum(UnionAr))]; }
  { int arr[F(__is_enum(Derives))]; }
  { int arr[F(__is_enum(ClassType))]; }
  { int arr[F(__is_enum(cvoid))]; }
  { int arr[F(__is_enum(IntArNB))]; }
  { int arr[F(__is_enum(HasAnonymousUnion))]; }
}

struct FinalClass final {
};

template<typename T>
struct PotentiallyFinal { };

template<typename T>
struct PotentiallyFinal<T*> final { };

template<>
struct PotentiallyFinal<int> final { };

void is_final()
{
	{ int arr[T(__is_final(FinalClass))]; }
	{ int arr[T(__is_final(PotentiallyFinal<float*>))]; }
	{ int arr[T(__is_final(PotentiallyFinal<int>))]; }

	{ int arr[F(__is_final(int))]; }
	{ int arr[F(__is_final(Union))]; }
	{ int arr[F(__is_final(Int))]; }
	{ int arr[F(__is_final(IntAr))]; }
	{ int arr[F(__is_final(UnionAr))]; }
	{ int arr[F(__is_final(Derives))]; }
	{ int arr[F(__is_final(ClassType))]; }
	{ int arr[F(__is_final(cvoid))]; }
	{ int arr[F(__is_final(IntArNB))]; }
	{ int arr[F(__is_final(HasAnonymousUnion))]; }
	{ int arr[F(__is_final(PotentiallyFinal<float>))]; }
}

typedef HasVirt Polymorph;
struct InheritPolymorph : Polymorph {};

void is_polymorphic()
{
  { int arr[T(__is_polymorphic(Polymorph))]; }
  { int arr[T(__is_polymorphic(InheritPolymorph))]; }

  { int arr[F(__is_polymorphic(int))]; }
  { int arr[F(__is_polymorphic(Union))]; }
  { int arr[F(__is_polymorphic(Int))]; }
  { int arr[F(__is_polymorphic(IntAr))]; }
  { int arr[F(__is_polymorphic(UnionAr))]; }
  { int arr[F(__is_polymorphic(Derives))]; }
  { int arr[F(__is_polymorphic(ClassType))]; }
  { int arr[F(__is_polymorphic(Enum))]; }
  { int arr[F(__is_polymorphic(cvoid))]; }
  { int arr[F(__is_polymorphic(IntArNB))]; }
}

void is_integral()
{
  int t01[T(__is_integral(bool))];
  int t02[T(__is_integral(char))];
  int t03[T(__is_integral(signed char))];
  int t04[T(__is_integral(unsigned char))];
  //int t05[T(__is_integral(char16_t))];
  //int t06[T(__is_integral(char32_t))];
  int t07[T(__is_integral(wchar_t))];
  int t08[T(__is_integral(short))];
  int t09[T(__is_integral(unsigned short))];
  int t10[T(__is_integral(int))];
  int t11[T(__is_integral(unsigned int))];
  int t12[T(__is_integral(long))];
  int t13[T(__is_integral(unsigned long))];

  int t21[F(__is_integral(float))];
  int t22[F(__is_integral(double))];
  int t23[F(__is_integral(long double))];
  int t24[F(__is_integral(Union))];
  int t25[F(__is_integral(UnionAr))];
  int t26[F(__is_integral(Derives))];
  int t27[F(__is_integral(ClassType))];
  int t28[F(__is_integral(Enum))];
  int t29[F(__is_integral(void))];
  int t30[F(__is_integral(cvoid))];
  int t31[F(__is_integral(IntArNB))];
}

void is_floating_point()
{
  int t01[T(__is_floating_point(float))];
  int t02[T(__is_floating_point(double))];
  int t03[T(__is_floating_point(long double))];

  int t11[F(__is_floating_point(bool))];
  int t12[F(__is_floating_point(char))];
  int t13[F(__is_floating_point(signed char))];
  int t14[F(__is_floating_point(unsigned char))];
  //int t15[F(__is_floating_point(char16_t))];
  //int t16[F(__is_floating_point(char32_t))];
  int t17[F(__is_floating_point(wchar_t))];
  int t18[F(__is_floating_point(short))];
  int t19[F(__is_floating_point(unsigned short))];
  int t20[F(__is_floating_point(int))];
  int t21[F(__is_floating_point(unsigned int))];
  int t22[F(__is_floating_point(long))];
  int t23[F(__is_floating_point(unsigned long))];
  int t24[F(__is_floating_point(Union))];
  int t25[F(__is_floating_point(UnionAr))];
  int t26[F(__is_floating_point(Derives))];
  int t27[F(__is_floating_point(ClassType))];
  int t28[F(__is_floating_point(Enum))];
  int t29[F(__is_floating_point(void))];
  int t30[F(__is_floating_point(cvoid))];
  int t31[F(__is_floating_point(IntArNB))];
}

void is_arithmetic()
{
  int t01[T(__is_arithmetic(float))];
  int t02[T(__is_arithmetic(double))];
  int t03[T(__is_arithmetic(long double))];
  int t11[T(__is_arithmetic(bool))];
  int t12[T(__is_arithmetic(char))];
  int t13[T(__is_arithmetic(signed char))];
  int t14[T(__is_arithmetic(unsigned char))];
  //int t15[T(__is_arithmetic(char16_t))];
  //int t16[T(__is_arithmetic(char32_t))];
  int t17[T(__is_arithmetic(wchar_t))];
  int t18[T(__is_arithmetic(short))];
  int t19[T(__is_arithmetic(unsigned short))];
  int t20[T(__is_arithmetic(int))];
  int t21[T(__is_arithmetic(unsigned int))];
  int t22[T(__is_arithmetic(long))];
  int t23[T(__is_arithmetic(unsigned long))];

  int t24[F(__is_arithmetic(Union))];
  int t25[F(__is_arithmetic(UnionAr))];
  int t26[F(__is_arithmetic(Derives))];
  int t27[F(__is_arithmetic(ClassType))];
  int t28[F(__is_arithmetic(Enum))];
  int t29[F(__is_arithmetic(void))];
  int t30[F(__is_arithmetic(cvoid))];
  int t31[F(__is_arithmetic(IntArNB))];
}

struct ACompleteType {};
struct AnIncompleteType;

void is_complete_type()
{
  int t01[T(__is_complete_type(float))];
  int t02[T(__is_complete_type(double))];
  int t03[T(__is_complete_type(long double))];
  int t11[T(__is_complete_type(bool))];
  int t12[T(__is_complete_type(char))];
  int t13[T(__is_complete_type(signed char))];
  int t14[T(__is_complete_type(unsigned char))];
  //int t15[T(__is_complete_type(char16_t))];
  //int t16[T(__is_complete_type(char32_t))];
  int t17[T(__is_complete_type(wchar_t))];
  int t18[T(__is_complete_type(short))];
  int t19[T(__is_complete_type(unsigned short))];
  int t20[T(__is_complete_type(int))];
  int t21[T(__is_complete_type(unsigned int))];
  int t22[T(__is_complete_type(long))];
  int t23[T(__is_complete_type(unsigned long))];
  int t24[T(__is_complete_type(ACompleteType))];

  int t30[F(__is_complete_type(AnIncompleteType))];
}

void is_void()
{
  int t01[T(__is_void(void))];
  int t02[T(__is_void(cvoid))];

  int t10[F(__is_void(float))];
  int t11[F(__is_void(double))];
  int t12[F(__is_void(long double))];
  int t13[F(__is_void(bool))];
  int t14[F(__is_void(char))];
  int t15[F(__is_void(signed char))];
  int t16[F(__is_void(unsigned char))];
  int t17[F(__is_void(wchar_t))];
  int t18[F(__is_void(short))];
  int t19[F(__is_void(unsigned short))];
  int t20[F(__is_void(int))];
  int t21[F(__is_void(unsigned int))];
  int t22[F(__is_void(long))];
  int t23[F(__is_void(unsigned long))];
  int t24[F(__is_void(Union))];
  int t25[F(__is_void(UnionAr))];
  int t26[F(__is_void(Derives))];
  int t27[F(__is_void(ClassType))];
  int t28[F(__is_void(Enum))];
  int t29[F(__is_void(IntArNB))];
  int t30[F(__is_void(void*))];
  int t31[F(__is_void(cvoid*))];
}

void is_array()
{
  int t01[T(__is_array(IntAr))];
  int t02[T(__is_array(IntArNB))];
  int t03[T(__is_array(UnionAr))];

  int t10[F(__is_array(void))];
  int t11[F(__is_array(cvoid))];
  int t12[F(__is_array(float))];
  int t13[F(__is_array(double))];
  int t14[F(__is_array(long double))];
  int t15[F(__is_array(bool))];
  int t16[F(__is_array(char))];
  int t17[F(__is_array(signed char))];
  int t18[F(__is_array(unsigned char))];
  int t19[F(__is_array(wchar_t))];
  int t20[F(__is_array(short))];
  int t21[F(__is_array(unsigned short))];
  int t22[F(__is_array(int))];
  int t23[F(__is_array(unsigned int))];
  int t24[F(__is_array(long))];
  int t25[F(__is_array(unsigned long))];
  int t26[F(__is_array(Union))];
  int t27[F(__is_array(Derives))];
  int t28[F(__is_array(ClassType))];
  int t29[F(__is_array(Enum))];
  int t30[F(__is_array(void*))];
  int t31[F(__is_array(cvoid*))];
}

template <typename T> void tmpl_func(T&) {}

template <typename T> struct type_wrapper {
  typedef T type;
  typedef T* ptrtype;
  typedef T& reftype;
};

void is_function()
{
  int t01[T(__is_function(type_wrapper<void(void)>::type))];
  int t02[T(__is_function(typeof(tmpl_func<int>)))];

  typedef void (*ptr_to_func_type)(void);

  int t10[F(__is_function(void))];
  int t11[F(__is_function(cvoid))];
  int t12[F(__is_function(float))];
  int t13[F(__is_function(double))];
  int t14[F(__is_function(long double))];
  int t15[F(__is_function(bool))];
  int t16[F(__is_function(char))];
  int t17[F(__is_function(signed char))];
  int t18[F(__is_function(unsigned char))];
  int t19[F(__is_function(wchar_t))];
  int t20[F(__is_function(short))];
  int t21[F(__is_function(unsigned short))];
  int t22[F(__is_function(int))];
  int t23[F(__is_function(unsigned int))];
  int t24[F(__is_function(long))];
  int t25[F(__is_function(unsigned long))];
  int t26[F(__is_function(Union))];
  int t27[F(__is_function(Derives))];
  int t28[F(__is_function(ClassType))];
  int t29[F(__is_function(Enum))];
  int t30[F(__is_function(void*))];
  int t31[F(__is_function(cvoid*))];
  int t32[F(__is_function(void(*)()))];
  int t33[F(__is_function(ptr_to_func_type))];
  int t34[F(__is_function(type_wrapper<void(void)>::ptrtype))];
  int t35[F(__is_function(type_wrapper<void(void)>::reftype))];
}

void is_reference()
{
  int t01[T(__is_reference(int&))];
  int t02[T(__is_reference(const int&))];
  int t03[T(__is_reference(void *&))];

  int t10[F(__is_reference(int))];
  int t11[F(__is_reference(const int))];
  int t12[F(__is_reference(void *))];
}

void is_lvalue_reference()
{
  int t01[T(__is_lvalue_reference(int&))];
  int t02[T(__is_lvalue_reference(void *&))];
  int t03[T(__is_lvalue_reference(const int&))];
  int t04[T(__is_lvalue_reference(void * const &))];

  int t10[F(__is_lvalue_reference(int))];
  int t11[F(__is_lvalue_reference(const int))];
  int t12[F(__is_lvalue_reference(void *))];
}

#if __has_feature(cxx_rvalue_references)

void is_rvalue_reference()
{
  int t01[T(__is_rvalue_reference(const int&&))];
  int t02[T(__is_rvalue_reference(void * const &&))];

  int t10[F(__is_rvalue_reference(int&))];
  int t11[F(__is_rvalue_reference(void *&))];
  int t12[F(__is_rvalue_reference(const int&))];
  int t13[F(__is_rvalue_reference(void * const &))];
  int t14[F(__is_rvalue_reference(int))];
  int t15[F(__is_rvalue_reference(const int))];
  int t16[F(__is_rvalue_reference(void *))];
}

#endif

void is_fundamental()
{
  int t01[T(__is_fundamental(float))];
  int t02[T(__is_fundamental(double))];
  int t03[T(__is_fundamental(long double))];
  int t11[T(__is_fundamental(bool))];
  int t12[T(__is_fundamental(char))];
  int t13[T(__is_fundamental(signed char))];
  int t14[T(__is_fundamental(unsigned char))];
  //int t15[T(__is_fundamental(char16_t))];
  //int t16[T(__is_fundamental(char32_t))];
  int t17[T(__is_fundamental(wchar_t))];
  int t18[T(__is_fundamental(short))];
  int t19[T(__is_fundamental(unsigned short))];
  int t20[T(__is_fundamental(int))];
  int t21[T(__is_fundamental(unsigned int))];
  int t22[T(__is_fundamental(long))];
  int t23[T(__is_fundamental(unsigned long))];
  int t24[T(__is_fundamental(void))];
  int t25[T(__is_fundamental(cvoid))];

  int t30[F(__is_fundamental(Union))];
  int t31[F(__is_fundamental(UnionAr))];
  int t32[F(__is_fundamental(Derives))];
  int t33[F(__is_fundamental(ClassType))];
  int t34[F(__is_fundamental(Enum))];
  int t35[F(__is_fundamental(IntArNB))];
}

void is_object()
{
  int t01[T(__is_object(int))];
  int t02[T(__is_object(int *))];
  int t03[T(__is_object(void *))];
  int t04[T(__is_object(Union))];
  int t05[T(__is_object(UnionAr))];
  int t06[T(__is_object(ClassType))];
  int t07[T(__is_object(Enum))];

  int t10[F(__is_object(type_wrapper<void(void)>::type))];
  int t11[F(__is_object(int&))];
  int t12[F(__is_object(void))];
}

void is_scalar()
{
  int t01[T(__is_scalar(float))];
  int t02[T(__is_scalar(double))];
  int t03[T(__is_scalar(long double))];
  int t04[T(__is_scalar(bool))];
  int t05[T(__is_scalar(char))];
  int t06[T(__is_scalar(signed char))];
  int t07[T(__is_scalar(unsigned char))];
  int t08[T(__is_scalar(wchar_t))];
  int t09[T(__is_scalar(short))];
  int t10[T(__is_scalar(unsigned short))];
  int t11[T(__is_scalar(int))];
  int t12[T(__is_scalar(unsigned int))];
  int t13[T(__is_scalar(long))];
  int t14[T(__is_scalar(unsigned long))];
  int t15[T(__is_scalar(Enum))];
  int t16[T(__is_scalar(void*))];
  int t17[T(__is_scalar(cvoid*))];

  int t20[F(__is_scalar(void))];
  int t21[F(__is_scalar(cvoid))];
  int t22[F(__is_scalar(Union))];
  int t23[F(__is_scalar(UnionAr))];
  int t24[F(__is_scalar(Derives))];
  int t25[F(__is_scalar(ClassType))];
  int t26[F(__is_scalar(IntArNB))];
}

struct StructWithMembers {
  int member;
  void method() {}
};

void is_compound()
{
  int t01[T(__is_compound(void*))];
  int t02[T(__is_compound(cvoid*))];
  int t03[T(__is_compound(void (*)()))];
  int t04[T(__is_compound(int StructWithMembers::*))];
  int t05[T(__is_compound(void (StructWithMembers::*)()))];
  int t06[T(__is_compound(int&))];
  int t07[T(__is_compound(Union))];
  int t08[T(__is_compound(UnionAr))];
  int t09[T(__is_compound(Derives))];
  int t10[T(__is_compound(ClassType))];
  int t11[T(__is_compound(IntArNB))];
  int t12[T(__is_compound(Enum))];

  int t20[F(__is_compound(float))];
  int t21[F(__is_compound(double))];
  int t22[F(__is_compound(long double))];
  int t23[F(__is_compound(bool))];
  int t24[F(__is_compound(char))];
  int t25[F(__is_compound(signed char))];
  int t26[F(__is_compound(unsigned char))];
  int t27[F(__is_compound(wchar_t))];
  int t28[F(__is_compound(short))];
  int t29[F(__is_compound(unsigned short))];
  int t30[F(__is_compound(int))];
  int t31[F(__is_compound(unsigned int))];
  int t32[F(__is_compound(long))];
  int t33[F(__is_compound(unsigned long))];
  int t34[F(__is_compound(void))];
  int t35[F(__is_compound(cvoid))];
}

void is_pointer()
{
  StructWithMembers x;

  int t01[T(__is_pointer(void*))];
  int t02[T(__is_pointer(cvoid*))];
  int t03[T(__is_pointer(cvoid*))];
  int t04[T(__is_pointer(char*))];
  int t05[T(__is_pointer(int*))];
  int t06[T(__is_pointer(int**))];
  int t07[T(__is_pointer(ClassType*))];
  int t08[T(__is_pointer(Derives*))];
  int t09[T(__is_pointer(Enum*))];
  int t10[T(__is_pointer(IntArNB*))];
  int t11[T(__is_pointer(Union*))];
  int t12[T(__is_pointer(UnionAr*))];
  int t13[T(__is_pointer(StructWithMembers*))];
  int t14[T(__is_pointer(void (*)()))];

  int t20[F(__is_pointer(void))];
  int t21[F(__is_pointer(cvoid))];
  int t22[F(__is_pointer(cvoid))];
  int t23[F(__is_pointer(char))];
  int t24[F(__is_pointer(int))];
  int t25[F(__is_pointer(int))];
  int t26[F(__is_pointer(ClassType))];
  int t27[F(__is_pointer(Derives))];
  int t28[F(__is_pointer(Enum))];
  int t29[F(__is_pointer(IntArNB))];
  int t30[F(__is_pointer(Union))];
  int t31[F(__is_pointer(UnionAr))];
  int t32[F(__is_pointer(StructWithMembers))];
  int t33[F(__is_pointer(int StructWithMembers::*))];
  int t34[F(__is_pointer(void (StructWithMembers::*) ()))];
}

void is_member_object_pointer()
{
  StructWithMembers x;

  int t01[T(__is_member_object_pointer(int StructWithMembers::*))];

  int t10[F(__is_member_object_pointer(void (StructWithMembers::*) ()))];
  int t11[F(__is_member_object_pointer(void*))];
  int t12[F(__is_member_object_pointer(cvoid*))];
  int t13[F(__is_member_object_pointer(cvoid*))];
  int t14[F(__is_member_object_pointer(char*))];
  int t15[F(__is_member_object_pointer(int*))];
  int t16[F(__is_member_object_pointer(int**))];
  int t17[F(__is_member_object_pointer(ClassType*))];
  int t18[F(__is_member_object_pointer(Derives*))];
  int t19[F(__is_member_object_pointer(Enum*))];
  int t20[F(__is_member_object_pointer(IntArNB*))];
  int t21[F(__is_member_object_pointer(Union*))];
  int t22[F(__is_member_object_pointer(UnionAr*))];
  int t23[F(__is_member_object_pointer(StructWithMembers*))];
  int t24[F(__is_member_object_pointer(void))];
  int t25[F(__is_member_object_pointer(cvoid))];
  int t26[F(__is_member_object_pointer(cvoid))];
  int t27[F(__is_member_object_pointer(char))];
  int t28[F(__is_member_object_pointer(int))];
  int t29[F(__is_member_object_pointer(int))];
  int t30[F(__is_member_object_pointer(ClassType))];
  int t31[F(__is_member_object_pointer(Derives))];
  int t32[F(__is_member_object_pointer(Enum))];
  int t33[F(__is_member_object_pointer(IntArNB))];
  int t34[F(__is_member_object_pointer(Union))];
  int t35[F(__is_member_object_pointer(UnionAr))];
  int t36[F(__is_member_object_pointer(StructWithMembers))];
  int t37[F(__is_member_object_pointer(void (*)()))];
}

void is_member_function_pointer()
{
  StructWithMembers x;

  int t01[T(__is_member_function_pointer(void (StructWithMembers::*) ()))];

  int t10[F(__is_member_function_pointer(int StructWithMembers::*))];
  int t11[F(__is_member_function_pointer(void*))];
  int t12[F(__is_member_function_pointer(cvoid*))];
  int t13[F(__is_member_function_pointer(cvoid*))];
  int t14[F(__is_member_function_pointer(char*))];
  int t15[F(__is_member_function_pointer(int*))];
  int t16[F(__is_member_function_pointer(int**))];
  int t17[F(__is_member_function_pointer(ClassType*))];
  int t18[F(__is_member_function_pointer(Derives*))];
  int t19[F(__is_member_function_pointer(Enum*))];
  int t20[F(__is_member_function_pointer(IntArNB*))];
  int t21[F(__is_member_function_pointer(Union*))];
  int t22[F(__is_member_function_pointer(UnionAr*))];
  int t23[F(__is_member_function_pointer(StructWithMembers*))];
  int t24[F(__is_member_function_pointer(void))];
  int t25[F(__is_member_function_pointer(cvoid))];
  int t26[F(__is_member_function_pointer(cvoid))];
  int t27[F(__is_member_function_pointer(char))];
  int t28[F(__is_member_function_pointer(int))];
  int t29[F(__is_member_function_pointer(int))];
  int t30[F(__is_member_function_pointer(ClassType))];
  int t31[F(__is_member_function_pointer(Derives))];
  int t32[F(__is_member_function_pointer(Enum))];
  int t33[F(__is_member_function_pointer(IntArNB))];
  int t34[F(__is_member_function_pointer(Union))];
  int t35[F(__is_member_function_pointer(UnionAr))];
  int t36[F(__is_member_function_pointer(StructWithMembers))];
  int t37[F(__is_member_function_pointer(void (*)()))];
}

void is_member_pointer()
{
  StructWithMembers x;

  int t01[T(__is_member_pointer(int StructWithMembers::*))];
  int t02[T(__is_member_pointer(void (StructWithMembers::*) ()))];

  int t10[F(__is_member_pointer(void*))];
  int t11[F(__is_member_pointer(cvoid*))];
  int t12[F(__is_member_pointer(cvoid*))];
  int t13[F(__is_member_pointer(char*))];
  int t14[F(__is_member_pointer(int*))];
  int t15[F(__is_member_pointer(int**))];
  int t16[F(__is_member_pointer(ClassType*))];
  int t17[F(__is_member_pointer(Derives*))];
  int t18[F(__is_member_pointer(Enum*))];
  int t19[F(__is_member_pointer(IntArNB*))];
  int t20[F(__is_member_pointer(Union*))];
  int t21[F(__is_member_pointer(UnionAr*))];
  int t22[F(__is_member_pointer(StructWithMembers*))];
  int t23[F(__is_member_pointer(void))];
  int t24[F(__is_member_pointer(cvoid))];
  int t25[F(__is_member_pointer(cvoid))];
  int t26[F(__is_member_pointer(char))];
  int t27[F(__is_member_pointer(int))];
  int t28[F(__is_member_pointer(int))];
  int t29[F(__is_member_pointer(ClassType))];
  int t30[F(__is_member_pointer(Derives))];
  int t31[F(__is_member_pointer(Enum))];
  int t32[F(__is_member_pointer(IntArNB))];
  int t33[F(__is_member_pointer(Union))];
  int t34[F(__is_member_pointer(UnionAr))];
  int t35[F(__is_member_pointer(StructWithMembers))];
  int t36[F(__is_member_pointer(void (*)()))];
}

void is_const()
{
  int t01[T(__is_const(cvoid))];
  int t02[T(__is_const(const char))];
  int t03[T(__is_const(const int))];
  int t04[T(__is_const(const long))];
  int t05[T(__is_const(const short))];
  int t06[T(__is_const(const signed char))];
  int t07[T(__is_const(const wchar_t))];
  int t08[T(__is_const(const bool))];
  int t09[T(__is_const(const float))];
  int t10[T(__is_const(const double))];
  int t11[T(__is_const(const long double))];
  int t12[T(__is_const(const unsigned char))];
  int t13[T(__is_const(const unsigned int))];
  int t14[T(__is_const(const unsigned long long))];
  int t15[T(__is_const(const unsigned long))];
  int t16[T(__is_const(const unsigned short))];
  int t17[T(__is_const(const void))];
  int t18[T(__is_const(const ClassType))];
  int t19[T(__is_const(const Derives))];
  int t20[T(__is_const(const Enum))];
  int t21[T(__is_const(const IntArNB))];
  int t22[T(__is_const(const Union))];
  int t23[T(__is_const(const UnionAr))];

  int t30[F(__is_const(char))];
  int t31[F(__is_const(int))];
  int t32[F(__is_const(long))];
  int t33[F(__is_const(short))];
  int t34[F(__is_const(signed char))];
  int t35[F(__is_const(wchar_t))];
  int t36[F(__is_const(bool))];
  int t37[F(__is_const(float))];
  int t38[F(__is_const(double))];
  int t39[F(__is_const(long double))];
  int t40[F(__is_const(unsigned char))];
  int t41[F(__is_const(unsigned int))];
  int t42[F(__is_const(unsigned long long))];
  int t43[F(__is_const(unsigned long))];
  int t44[F(__is_const(unsigned short))];
  int t45[F(__is_const(void))];
  int t46[F(__is_const(ClassType))];
  int t47[F(__is_const(Derives))];
  int t48[F(__is_const(Enum))];
  int t49[F(__is_const(IntArNB))];
  int t50[F(__is_const(Union))];
  int t51[F(__is_const(UnionAr))];
}

void is_volatile()
{
  int t02[T(__is_volatile(volatile char))];
  int t03[T(__is_volatile(volatile int))];
  int t04[T(__is_volatile(volatile long))];
  int t05[T(__is_volatile(volatile short))];
  int t06[T(__is_volatile(volatile signed char))];
  int t07[T(__is_volatile(volatile wchar_t))];
  int t08[T(__is_volatile(volatile bool))];
  int t09[T(__is_volatile(volatile float))];
  int t10[T(__is_volatile(volatile double))];
  int t11[T(__is_volatile(volatile long double))];
  int t12[T(__is_volatile(volatile unsigned char))];
  int t13[T(__is_volatile(volatile unsigned int))];
  int t14[T(__is_volatile(volatile unsigned long long))];
  int t15[T(__is_volatile(volatile unsigned long))];
  int t16[T(__is_volatile(volatile unsigned short))];
  int t17[T(__is_volatile(volatile void))];
  int t18[T(__is_volatile(volatile ClassType))];
  int t19[T(__is_volatile(volatile Derives))];
  int t20[T(__is_volatile(volatile Enum))];
  int t21[T(__is_volatile(volatile IntArNB))];
  int t22[T(__is_volatile(volatile Union))];
  int t23[T(__is_volatile(volatile UnionAr))];

  int t30[F(__is_volatile(char))];
  int t31[F(__is_volatile(int))];
  int t32[F(__is_volatile(long))];
  int t33[F(__is_volatile(short))];
  int t34[F(__is_volatile(signed char))];
  int t35[F(__is_volatile(wchar_t))];
  int t36[F(__is_volatile(bool))];
  int t37[F(__is_volatile(float))];
  int t38[F(__is_volatile(double))];
  int t39[F(__is_volatile(long double))];
  int t40[F(__is_volatile(unsigned char))];
  int t41[F(__is_volatile(unsigned int))];
  int t42[F(__is_volatile(unsigned long long))];
  int t43[F(__is_volatile(unsigned long))];
  int t44[F(__is_volatile(unsigned short))];
  int t45[F(__is_volatile(void))];
  int t46[F(__is_volatile(ClassType))];
  int t47[F(__is_volatile(Derives))];
  int t48[F(__is_volatile(Enum))];
  int t49[F(__is_volatile(IntArNB))];
  int t50[F(__is_volatile(Union))];
  int t51[F(__is_volatile(UnionAr))];
}

struct TrivialStruct {
  int member;
};

struct NonTrivialStruct {
  int member;
  NonTrivialStruct() {
    member = 0;
  }
};

struct SuperNonTrivialStruct {
  SuperNonTrivialStruct() { }
  ~SuperNonTrivialStruct() { }
};

struct NonTCStruct {
  NonTCStruct(const NonTCStruct&) {}
};

struct AllDefaulted {
  AllDefaulted() = default;
  AllDefaulted(const AllDefaulted &) = default;
  AllDefaulted(AllDefaulted &&) = default;
  AllDefaulted &operator=(const AllDefaulted &) = default;
  AllDefaulted &operator=(AllDefaulted &&) = default;
  ~AllDefaulted() = default;
};

struct NoDefaultMoveAssignDueToUDCopyCtor {
  NoDefaultMoveAssignDueToUDCopyCtor(const NoDefaultMoveAssignDueToUDCopyCtor&);
};

struct NoDefaultMoveAssignDueToUDCopyAssign {
  NoDefaultMoveAssignDueToUDCopyAssign& operator=(
    const NoDefaultMoveAssignDueToUDCopyAssign&);
};

struct NoDefaultMoveAssignDueToDtor {
  ~NoDefaultMoveAssignDueToDtor();
};

struct AllDeleted {
  AllDeleted() = delete;
  AllDeleted(const AllDeleted &) = delete;
  AllDeleted(AllDeleted &&) = delete;
  AllDeleted &operator=(const AllDeleted &) = delete;
  AllDeleted &operator=(AllDeleted &&) = delete;
  ~AllDeleted() = delete;
};

struct ExtDefaulted {
  ExtDefaulted();
  ExtDefaulted(const ExtDefaulted &);
  ExtDefaulted(ExtDefaulted &&);
  ExtDefaulted &operator=(const ExtDefaulted &);
  ExtDefaulted &operator=(ExtDefaulted &&);
  ~ExtDefaulted();
};

// Despite being defaulted, these functions are not trivial.
ExtDefaulted::ExtDefaulted() = default;
ExtDefaulted::ExtDefaulted(const ExtDefaulted &) = default;
ExtDefaulted::ExtDefaulted(ExtDefaulted &&) = default;
ExtDefaulted &ExtDefaulted::operator=(const ExtDefaulted &) = default;
ExtDefaulted &ExtDefaulted::operator=(ExtDefaulted &&) = default;
ExtDefaulted::~ExtDefaulted() = default;

void is_trivial2()
{
  int t01[T(__is_trivial(char))];
  int t02[T(__is_trivial(int))];
  int t03[T(__is_trivial(long))];
  int t04[T(__is_trivial(short))];
  int t05[T(__is_trivial(signed char))];
  int t06[T(__is_trivial(wchar_t))];
  int t07[T(__is_trivial(bool))];
  int t08[T(__is_trivial(float))];
  int t09[T(__is_trivial(double))];
  int t10[T(__is_trivial(long double))];
  int t11[T(__is_trivial(unsigned char))];
  int t12[T(__is_trivial(unsigned int))];
  int t13[T(__is_trivial(unsigned long long))];
  int t14[T(__is_trivial(unsigned long))];
  int t15[T(__is_trivial(unsigned short))];
  int t16[T(__is_trivial(ClassType))];
  int t17[T(__is_trivial(Derives))];
  int t18[T(__is_trivial(Enum))];
  int t19[T(__is_trivial(IntAr))];
  int t20[T(__is_trivial(Union))];
  int t21[T(__is_trivial(UnionAr))];
  int t22[T(__is_trivial(TrivialStruct))];
  int t23[T(__is_trivial(AllDefaulted))];
  int t24[T(__is_trivial(AllDeleted))];

  int t30[F(__is_trivial(void))];
  int t31[F(__is_trivial(NonTrivialStruct))];
  int t32[F(__is_trivial(SuperNonTrivialStruct))];
  int t33[F(__is_trivial(NonTCStruct))];
  int t34[F(__is_trivial(ExtDefaulted))];
}

void is_trivially_copyable2()
{
  int t01[T(__is_trivially_copyable(char))];
  int t02[T(__is_trivially_copyable(int))];
  int t03[T(__is_trivially_copyable(long))];
  int t04[T(__is_trivially_copyable(short))];
  int t05[T(__is_trivially_copyable(signed char))];
  int t06[T(__is_trivially_copyable(wchar_t))];
  int t07[T(__is_trivially_copyable(bool))];
  int t08[T(__is_trivially_copyable(float))];
  int t09[T(__is_trivially_copyable(double))];
  int t10[T(__is_trivially_copyable(long double))];
  int t11[T(__is_trivially_copyable(unsigned char))];
  int t12[T(__is_trivially_copyable(unsigned int))];
  int t13[T(__is_trivially_copyable(unsigned long long))];
  int t14[T(__is_trivially_copyable(unsigned long))];
  int t15[T(__is_trivially_copyable(unsigned short))];
  int t16[T(__is_trivially_copyable(ClassType))];
  int t17[T(__is_trivially_copyable(Derives))];
  int t18[T(__is_trivially_copyable(Enum))];
  int t19[T(__is_trivially_copyable(IntAr))];
  int t20[T(__is_trivially_copyable(Union))];
  int t21[T(__is_trivially_copyable(UnionAr))];
  int t22[T(__is_trivially_copyable(TrivialStruct))];
  int t23[T(__is_trivially_copyable(NonTrivialStruct))];
  int t24[T(__is_trivially_copyable(AllDefaulted))];
  int t25[T(__is_trivially_copyable(AllDeleted))];

  int t30[F(__is_trivially_copyable(void))];
  int t31[F(__is_trivially_copyable(SuperNonTrivialStruct))];
  int t32[F(__is_trivially_copyable(NonTCStruct))];
  int t33[F(__is_trivially_copyable(ExtDefaulted))];
}

struct CStruct {
  int one;
  int two;
};

struct CEmptyStruct {};

struct CppEmptyStruct : CStruct {};
struct CppStructStandard : CEmptyStruct {
  int three;
  int four;
};
struct CppStructNonStandardByBase : CStruct {
  int three;
  int four;
};
struct CppStructNonStandardByVirt : CStruct {
  virtual void method() {}
};
struct CppStructNonStandardByMemb : CStruct {
  CppStructNonStandardByVirt member;
};
struct CppStructNonStandardByProt : CStruct {
  int five;
protected:
  int six;
};
struct CppStructNonStandardByVirtBase : virtual CStruct {
};
struct CppStructNonStandardBySameBase : CEmptyStruct {
  CEmptyStruct member;
};
struct CppStructNonStandardBy2ndVirtBase : CEmptyStruct {
  CEmptyStruct member;
};

void is_standard_layout()
{
  typedef const int ConstInt;
  typedef ConstInt ConstIntAr[4];
  typedef CppStructStandard CppStructStandardAr[4];

  int t01[T(__is_standard_layout(int))];
  int t02[T(__is_standard_layout(ConstInt))];
  int t03[T(__is_standard_layout(ConstIntAr))];
  int t04[T(__is_standard_layout(CStruct))];
  int t05[T(__is_standard_layout(CppStructStandard))];
  int t06[T(__is_standard_layout(CppStructStandardAr))];
  int t07[T(__is_standard_layout(Vector))];
  int t08[T(__is_standard_layout(VectorExt))];

  typedef CppStructNonStandardByBase CppStructNonStandardByBaseAr[4];

  int t10[F(__is_standard_layout(CppStructNonStandardByVirt))];
  int t11[F(__is_standard_layout(CppStructNonStandardByMemb))];
  int t12[F(__is_standard_layout(CppStructNonStandardByProt))];
  int t13[F(__is_standard_layout(CppStructNonStandardByVirtBase))];
  int t14[F(__is_standard_layout(CppStructNonStandardByBase))];
  int t15[F(__is_standard_layout(CppStructNonStandardByBaseAr))];
  int t16[F(__is_standard_layout(CppStructNonStandardBySameBase))];
  int t17[F(__is_standard_layout(CppStructNonStandardBy2ndVirtBase))];
}

void is_signed()
{
  //int t01[T(__is_signed(char))];
  int t02[T(__is_signed(int))];
  int t03[T(__is_signed(long))];
  int t04[T(__is_signed(short))];
  int t05[T(__is_signed(signed char))];
  int t06[T(__is_signed(wchar_t))];

  int t10[F(__is_signed(bool))];
  int t11[F(__is_signed(cvoid))];
  int t12[F(__is_signed(float))];
  int t13[F(__is_signed(double))];
  int t14[F(__is_signed(long double))];
  int t15[F(__is_signed(unsigned char))];
  int t16[F(__is_signed(unsigned int))];
  int t17[F(__is_signed(unsigned long long))];
  int t18[F(__is_signed(unsigned long))];
  int t19[F(__is_signed(unsigned short))];
  int t20[F(__is_signed(void))];
  int t21[F(__is_signed(ClassType))];
  int t22[F(__is_signed(Derives))];
  int t23[F(__is_signed(Enum))];
  int t24[F(__is_signed(IntArNB))];
  int t25[F(__is_signed(Union))];
  int t26[F(__is_signed(UnionAr))];
}

void is_unsigned()
{
  int t01[T(__is_unsigned(bool))];
  int t02[T(__is_unsigned(unsigned char))];
  int t03[T(__is_unsigned(unsigned short))];
  int t04[T(__is_unsigned(unsigned int))];
  int t05[T(__is_unsigned(unsigned long))];
  int t06[T(__is_unsigned(unsigned long long))];
  int t07[T(__is_unsigned(Enum))];

  int t10[F(__is_unsigned(void))];
  int t11[F(__is_unsigned(cvoid))];
  int t12[F(__is_unsigned(float))];
  int t13[F(__is_unsigned(double))];
  int t14[F(__is_unsigned(long double))];
  int t16[F(__is_unsigned(char))];
  int t17[F(__is_unsigned(signed char))];
  int t18[F(__is_unsigned(wchar_t))];
  int t19[F(__is_unsigned(short))];
  int t20[F(__is_unsigned(int))];
  int t21[F(__is_unsigned(long))];
  int t22[F(__is_unsigned(Union))];
  int t23[F(__is_unsigned(UnionAr))];
  int t24[F(__is_unsigned(Derives))];
  int t25[F(__is_unsigned(ClassType))];
  int t26[F(__is_unsigned(IntArNB))];
}

typedef Int& IntRef;
typedef const IntAr ConstIntAr;
typedef ConstIntAr ConstIntArAr[4];

struct HasCopy {
  HasCopy(HasCopy& cp);
};

struct HasMove {
  HasMove(HasMove&& cp);
};

struct HasTemplateCons {
  HasVirt Annoying;

  template <typename T>
  HasTemplateCons(const T&);
};

void has_trivial_default_constructor() {
  { int arr[T(__has_trivial_constructor(Int))]; }
  { int arr[T(__has_trivial_constructor(IntAr))]; }
  { int arr[T(__has_trivial_constructor(Union))]; }
  { int arr[T(__has_trivial_constructor(UnionAr))]; }
  { int arr[T(__has_trivial_constructor(POD))]; }
  { int arr[T(__has_trivial_constructor(Derives))]; }
  { int arr[T(__has_trivial_constructor(DerivesAr))]; }
  { int arr[T(__has_trivial_constructor(ConstIntAr))]; }
  { int arr[T(__has_trivial_constructor(ConstIntArAr))]; }
  { int arr[T(__has_trivial_constructor(HasDest))]; }
  { int arr[T(__has_trivial_constructor(HasPriv))]; }
  { int arr[T(__has_trivial_constructor(HasCopyAssign))]; }
  { int arr[T(__has_trivial_constructor(HasMoveAssign))]; }
  { int arr[T(__has_trivial_constructor(const Int))]; }
  { int arr[T(__has_trivial_constructor(AllDefaulted))]; }
  { int arr[T(__has_trivial_constructor(AllDeleted))]; }

  { int arr[F(__has_trivial_constructor(HasCons))]; }
  { int arr[F(__has_trivial_constructor(HasRef))]; }
  { int arr[F(__has_trivial_constructor(HasCopy))]; }
  { int arr[F(__has_trivial_constructor(IntRef))]; }
  { int arr[F(__has_trivial_constructor(VirtAr))]; }
  { int arr[F(__has_trivial_constructor(void))]; }
  { int arr[F(__has_trivial_constructor(cvoid))]; }
  { int arr[F(__has_trivial_constructor(HasTemplateCons))]; }
  { int arr[F(__has_trivial_constructor(AllPrivate))]; }
  { int arr[F(__has_trivial_constructor(ExtDefaulted))]; }
}

void has_trivial_move_constructor() {
  // n3376 12.8 [class.copy]/12
  // A copy/move constructor for class X is trivial if it is not
  // user-provided, its declared parameter type is the same as
  // if it had been implicitly declared, and if
  //    class X has no virtual functions (10.3) and no virtual
  //     base classes (10.1), and
  //    the constructor selected to copy/move each direct base
  //     class subobject is trivial, and
  //    for each non-static data member of X that is of class
  //     type (or array thereof), the constructor selected
  //     to copy/move that member is trivial;
  // otherwise the copy/move constructor is non-trivial.
  { int arr[T(__has_trivial_move_constructor(POD))]; }
  { int arr[T(__has_trivial_move_constructor(Union))]; }
  { int arr[T(__has_trivial_move_constructor(HasCons))]; }
  { int arr[T(__has_trivial_move_constructor(HasStaticMemberMoveCtor))]; }
  { int arr[T(__has_trivial_move_constructor(AllDeleted))]; }

  { int arr[F(__has_trivial_move_constructor(HasVirt))]; }
  { int arr[F(__has_trivial_move_constructor(DerivesVirt))]; }
  { int arr[F(__has_trivial_move_constructor(HasMoveCtor))]; }
  { int arr[F(__has_trivial_move_constructor(DerivesHasMoveCtor))]; }
  { int arr[F(__has_trivial_move_constructor(HasMemberMoveCtor))]; }
}

void has_trivial_copy_constructor() {
  { int arr[T(__has_trivial_copy(Int))]; }
  { int arr[T(__has_trivial_copy(IntAr))]; }
  { int arr[T(__has_trivial_copy(Union))]; }
  { int arr[T(__has_trivial_copy(UnionAr))]; }
  { int arr[T(__has_trivial_copy(POD))]; }
  { int arr[T(__has_trivial_copy(Derives))]; }
  { int arr[T(__has_trivial_copy(ConstIntAr))]; }
  { int arr[T(__has_trivial_copy(ConstIntArAr))]; }
  { int arr[T(__has_trivial_copy(HasDest))]; }
  { int arr[T(__has_trivial_copy(HasPriv))]; }
  { int arr[T(__has_trivial_copy(HasCons))]; }
  { int arr[T(__has_trivial_copy(HasRef))]; }
  { int arr[T(__has_trivial_copy(HasMove))]; }
  { int arr[T(__has_trivial_copy(IntRef))]; }
  { int arr[T(__has_trivial_copy(HasCopyAssign))]; }
  { int arr[T(__has_trivial_copy(HasMoveAssign))]; }
  { int arr[T(__has_trivial_copy(const Int))]; }
  { int arr[T(__has_trivial_copy(AllDefaulted))]; }
  { int arr[T(__has_trivial_copy(AllDeleted))]; }
  { int arr[T(__has_trivial_copy(DerivesAr))]; }
  { int arr[T(__has_trivial_copy(DerivesHasRef))]; }

  { int arr[F(__has_trivial_copy(HasCopy))]; }
  { int arr[F(__has_trivial_copy(HasTemplateCons))]; }
  { int arr[F(__has_trivial_copy(VirtAr))]; }
  { int arr[F(__has_trivial_copy(void))]; }
  { int arr[F(__has_trivial_copy(cvoid))]; }
  { int arr[F(__has_trivial_copy(AllPrivate))]; }
  { int arr[F(__has_trivial_copy(ExtDefaulted))]; }
}

void has_trivial_copy_assignment() {
  { int arr[T(__has_trivial_assign(Int))]; }
  { int arr[T(__has_trivial_assign(IntAr))]; }
  { int arr[T(__has_trivial_assign(Union))]; }
  { int arr[T(__has_trivial_assign(UnionAr))]; }
  { int arr[T(__has_trivial_assign(POD))]; }
  { int arr[T(__has_trivial_assign(Derives))]; }
  { int arr[T(__has_trivial_assign(HasDest))]; }
  { int arr[T(__has_trivial_assign(HasPriv))]; }
  { int arr[T(__has_trivial_assign(HasCons))]; }
  { int arr[T(__has_trivial_assign(HasRef))]; }
  { int arr[T(__has_trivial_assign(HasCopy))]; }
  { int arr[T(__has_trivial_assign(HasMove))]; }
  { int arr[T(__has_trivial_assign(HasMoveAssign))]; }
  { int arr[T(__has_trivial_assign(AllDefaulted))]; }
  { int arr[T(__has_trivial_assign(AllDeleted))]; }
  { int arr[T(__has_trivial_assign(DerivesAr))]; }
  { int arr[T(__has_trivial_assign(DerivesHasRef))]; }

  { int arr[F(__has_trivial_assign(IntRef))]; }
  { int arr[F(__has_trivial_assign(HasCopyAssign))]; }
  { int arr[F(__has_trivial_assign(const Int))]; }
  { int arr[F(__has_trivial_assign(ConstIntAr))]; }
  { int arr[F(__has_trivial_assign(ConstIntArAr))]; }
  { int arr[F(__has_trivial_assign(VirtAr))]; }
  { int arr[F(__has_trivial_assign(void))]; }
  { int arr[F(__has_trivial_assign(cvoid))]; }
  { int arr[F(__has_trivial_assign(AllPrivate))]; }
  { int arr[F(__has_trivial_assign(ExtDefaulted))]; }
}

void has_trivial_destructor() {
  { int arr[T(__has_trivial_destructor(Int))]; }
  { int arr[T(__has_trivial_destructor(IntAr))]; }
  { int arr[T(__has_trivial_destructor(Union))]; }
  { int arr[T(__has_trivial_destructor(UnionAr))]; }
  { int arr[T(__has_trivial_destructor(POD))]; }
  { int arr[T(__has_trivial_destructor(Derives))]; }
  { int arr[T(__has_trivial_destructor(ConstIntAr))]; }
  { int arr[T(__has_trivial_destructor(ConstIntArAr))]; }
  { int arr[T(__has_trivial_destructor(HasPriv))]; }
  { int arr[T(__has_trivial_destructor(HasCons))]; }
  { int arr[T(__has_trivial_destructor(HasRef))]; }
  { int arr[T(__has_trivial_destructor(HasCopy))]; }
  { int arr[T(__has_trivial_destructor(HasMove))]; }
  { int arr[T(__has_trivial_destructor(IntRef))]; }
  { int arr[T(__has_trivial_destructor(HasCopyAssign))]; }
  { int arr[T(__has_trivial_destructor(HasMoveAssign))]; }
  { int arr[T(__has_trivial_destructor(const Int))]; }
  { int arr[T(__has_trivial_destructor(DerivesAr))]; }
  { int arr[T(__has_trivial_destructor(VirtAr))]; }
  { int arr[T(__has_trivial_destructor(AllDefaulted))]; }
  { int arr[T(__has_trivial_destructor(AllDeleted))]; }
  { int arr[T(__has_trivial_destructor(DerivesHasRef))]; }

  { int arr[F(__has_trivial_destructor(HasDest))]; }
  { int arr[F(__has_trivial_destructor(void))]; }
  { int arr[F(__has_trivial_destructor(cvoid))]; }
  { int arr[F(__has_trivial_destructor(AllPrivate))]; }
  { int arr[F(__has_trivial_destructor(ExtDefaulted))]; }
}

struct A { ~A() {} };
template<typename> struct B : A { };

void f() {
  { int arr[F(__has_trivial_destructor(A))]; }
  { int arr[F(__has_trivial_destructor(B<int>))]; }
}

class PR11110 {
  template <int> int operator=( int );
  int operator=(PR11110);
};

class UsingAssign;

class UsingAssignBase {
protected:
  UsingAssign &operator=(const UsingAssign&) throw();
};

class UsingAssign : public UsingAssignBase {
public:
  using UsingAssignBase::operator=;
};

void has_nothrow_assign() {
  { int arr[T(__has_nothrow_assign(Int))]; }
  { int arr[T(__has_nothrow_assign(IntAr))]; }
  { int arr[T(__has_nothrow_assign(Union))]; }
  { int arr[T(__has_nothrow_assign(UnionAr))]; }
  { int arr[T(__has_nothrow_assign(POD))]; }
  { int arr[T(__has_nothrow_assign(Derives))]; }
  { int arr[T(__has_nothrow_assign(HasDest))]; }
  { int arr[T(__has_nothrow_assign(HasPriv))]; }
  { int arr[T(__has_nothrow_assign(HasCons))]; }
  { int arr[T(__has_nothrow_assign(HasRef))]; }
  { int arr[T(__has_nothrow_assign(HasCopy))]; }
  { int arr[T(__has_nothrow_assign(HasMove))]; }
  { int arr[T(__has_nothrow_assign(HasMoveAssign))]; }
  { int arr[T(__has_nothrow_assign(HasNoThrowCopyAssign))]; }
  { int arr[T(__has_nothrow_assign(HasMultipleNoThrowCopyAssign))]; }
  { int arr[T(__has_nothrow_assign(HasVirtDest))]; }
  { int arr[T(__has_nothrow_assign(AllPrivate))]; }
  { int arr[T(__has_nothrow_assign(UsingAssign))]; }
  { int arr[T(__has_nothrow_assign(DerivesAr))]; }

  { int arr[F(__has_nothrow_assign(IntRef))]; }
  { int arr[F(__has_nothrow_assign(HasCopyAssign))]; }
  { int arr[F(__has_nothrow_assign(HasMultipleCopyAssign))]; }
  { int arr[F(__has_nothrow_assign(const Int))]; }
  { int arr[F(__has_nothrow_assign(ConstIntAr))]; }
  { int arr[F(__has_nothrow_assign(ConstIntArAr))]; }
  { int arr[F(__has_nothrow_assign(VirtAr))]; }
  { int arr[F(__has_nothrow_assign(void))]; }
  { int arr[F(__has_nothrow_assign(cvoid))]; }
  { int arr[F(__has_nothrow_assign(PR11110))]; }
}

void has_nothrow_move_assign() {
  { int arr[T(__has_nothrow_move_assign(Int))]; }
  { int arr[T(__has_nothrow_move_assign(Enum))]; }
  { int arr[T(__has_nothrow_move_assign(Int*))]; }
  { int arr[T(__has_nothrow_move_assign(Enum POD::*))]; }
  { int arr[T(__has_nothrow_move_assign(POD))]; }
  { int arr[T(__has_nothrow_move_assign(HasPriv))]; }
  { int arr[T(__has_nothrow_move_assign(HasNoThrowMoveAssign))]; }
  { int arr[T(__has_nothrow_move_assign(HasNoExceptNoThrowMoveAssign))]; }
  { int arr[T(__has_nothrow_move_assign(HasMemberNoThrowMoveAssign))]; }
  { int arr[T(__has_nothrow_move_assign(HasMemberNoExceptNoThrowMoveAssign))]; }
  { int arr[T(__has_nothrow_move_assign(AllDeleted))]; }

  { int arr[F(__has_nothrow_move_assign(HasThrowMoveAssign))]; }
  { int arr[F(__has_nothrow_move_assign(HasNoExceptFalseMoveAssign))]; }
  { int arr[F(__has_nothrow_move_assign(HasMemberThrowMoveAssign))]; }
  { int arr[F(__has_nothrow_move_assign(HasMemberNoExceptFalseMoveAssign))]; }
  { int arr[F(__has_nothrow_move_assign(NoDefaultMoveAssignDueToUDCopyCtor))]; }
  { int arr[F(__has_nothrow_move_assign(NoDefaultMoveAssignDueToUDCopyAssign))]; }
  { int arr[F(__has_nothrow_move_assign(NoDefaultMoveAssignDueToDtor))]; }
}

void has_trivial_move_assign() {
  // n3376 12.8 [class.copy]/25
  // A copy/move assignment operator for class X is trivial if it
  // is not user-provided, its declared parameter type is the same
  // as if it had been implicitly declared, and if:
  //   class X has no virtual functions (10.3) and no virtual base
  //    classes (10.1), and
  //   the assignment operator selected to copy/move each direct
  //    base class subobject is trivial, and
  //   for each non-static data member of X that is of class type
  //    (or array thereof), the assignment operator
  //    selected to copy/move that member is trivial;
  { int arr[T(__has_trivial_move_assign(Int))]; }
  { int arr[T(__has_trivial_move_assign(HasStaticMemberMoveAssign))]; }
  { int arr[T(__has_trivial_move_assign(AllDeleted))]; }

  { int arr[F(__has_trivial_move_assign(HasVirt))]; }
  { int arr[F(__has_trivial_move_assign(DerivesVirt))]; }
  { int arr[F(__has_trivial_move_assign(HasMoveAssign))]; }
  { int arr[F(__has_trivial_move_assign(DerivesHasMoveAssign))]; }
  { int arr[F(__has_trivial_move_assign(HasMemberMoveAssign))]; }
  { int arr[F(__has_nothrow_move_assign(NoDefaultMoveAssignDueToUDCopyCtor))]; }
  { int arr[F(__has_nothrow_move_assign(NoDefaultMoveAssignDueToUDCopyAssign))]; }
}

void has_nothrow_copy() {
  { int arr[T(__has_nothrow_copy(Int))]; }
  { int arr[T(__has_nothrow_copy(IntAr))]; }
  { int arr[T(__has_nothrow_copy(Union))]; }
  { int arr[T(__has_nothrow_copy(UnionAr))]; }
  { int arr[T(__has_nothrow_copy(POD))]; }
  { int arr[T(__has_nothrow_copy(const Int))]; }
  { int arr[T(__has_nothrow_copy(ConstIntAr))]; }
  { int arr[T(__has_nothrow_copy(ConstIntArAr))]; }
  { int arr[T(__has_nothrow_copy(Derives))]; }
  { int arr[T(__has_nothrow_copy(IntRef))]; }
  { int arr[T(__has_nothrow_copy(HasDest))]; }
  { int arr[T(__has_nothrow_copy(HasPriv))]; }
  { int arr[T(__has_nothrow_copy(HasCons))]; }
  { int arr[T(__has_nothrow_copy(HasRef))]; }
  { int arr[T(__has_nothrow_copy(HasMove))]; }
  { int arr[T(__has_nothrow_copy(HasCopyAssign))]; }
  { int arr[T(__has_nothrow_copy(HasMoveAssign))]; }
  { int arr[T(__has_nothrow_copy(HasNoThrowCopy))]; }
  { int arr[T(__has_nothrow_copy(HasMultipleNoThrowCopy))]; }
  { int arr[T(__has_nothrow_copy(HasVirtDest))]; }
  { int arr[T(__has_nothrow_copy(HasTemplateCons))]; }
  { int arr[T(__has_nothrow_copy(AllPrivate))]; }
  { int arr[T(__has_nothrow_copy(DerivesAr))]; }

  { int arr[F(__has_nothrow_copy(HasCopy))]; }
  { int arr[F(__has_nothrow_copy(HasMultipleCopy))]; }
  { int arr[F(__has_nothrow_copy(VirtAr))]; }
  { int arr[F(__has_nothrow_copy(void))]; }
  { int arr[F(__has_nothrow_copy(cvoid))]; }
}

void has_nothrow_constructor() {
  { int arr[T(__has_nothrow_constructor(Int))]; }
  { int arr[T(__has_nothrow_constructor(IntAr))]; }
  { int arr[T(__has_nothrow_constructor(Union))]; }
  { int arr[T(__has_nothrow_constructor(UnionAr))]; }
  { int arr[T(__has_nothrow_constructor(POD))]; }
  { int arr[T(__has_nothrow_constructor(Derives))]; }
  { int arr[T(__has_nothrow_constructor(DerivesAr))]; }
  { int arr[T(__has_nothrow_constructor(ConstIntAr))]; }
  { int arr[T(__has_nothrow_constructor(ConstIntArAr))]; }
  { int arr[T(__has_nothrow_constructor(HasDest))]; }
  { int arr[T(__has_nothrow_constructor(HasPriv))]; }
  { int arr[T(__has_nothrow_constructor(HasCopyAssign))]; }
  { int arr[T(__has_nothrow_constructor(const Int))]; }
  { int arr[T(__has_nothrow_constructor(HasNoThrowConstructor))]; }
  { int arr[T(__has_nothrow_constructor(HasVirtDest))]; }
  // { int arr[T(__has_nothrow_constructor(VirtAr))]; } // not implemented
  { int arr[T(__has_nothrow_constructor(AllPrivate))]; }

  { int arr[F(__has_nothrow_constructor(HasCons))]; }
  { int arr[F(__has_nothrow_constructor(HasRef))]; }
  { int arr[F(__has_nothrow_constructor(HasCopy))]; }
  { int arr[F(__has_nothrow_constructor(HasMove))]; }
  { int arr[F(__has_nothrow_constructor(HasNoThrowConstructorWithArgs))]; }
  { int arr[F(__has_nothrow_constructor(IntRef))]; }
  { int arr[F(__has_nothrow_constructor(void))]; }
  { int arr[F(__has_nothrow_constructor(cvoid))]; }
  { int arr[F(__has_nothrow_constructor(HasTemplateCons))]; }
}

void has_virtual_destructor() {
  { int arr[F(__has_virtual_destructor(Int))]; }
  { int arr[F(__has_virtual_destructor(IntAr))]; }
  { int arr[F(__has_virtual_destructor(Union))]; }
  { int arr[F(__has_virtual_destructor(UnionAr))]; }
  { int arr[F(__has_virtual_destructor(POD))]; }
  { int arr[F(__has_virtual_destructor(Derives))]; }
  { int arr[F(__has_virtual_destructor(DerivesAr))]; }
  { int arr[F(__has_virtual_destructor(const Int))]; }
  { int arr[F(__has_virtual_destructor(ConstIntAr))]; }
  { int arr[F(__has_virtual_destructor(ConstIntArAr))]; }
  { int arr[F(__has_virtual_destructor(HasDest))]; }
  { int arr[F(__has_virtual_destructor(HasPriv))]; }
  { int arr[F(__has_virtual_destructor(HasCons))]; }
  { int arr[F(__has_virtual_destructor(HasRef))]; }
  { int arr[F(__has_virtual_destructor(HasCopy))]; }
  { int arr[F(__has_virtual_destructor(HasMove))]; }
  { int arr[F(__has_virtual_destructor(HasCopyAssign))]; }
  { int arr[F(__has_virtual_destructor(HasMoveAssign))]; }
  { int arr[F(__has_virtual_destructor(IntRef))]; }
  { int arr[F(__has_virtual_destructor(VirtAr))]; }

  { int arr[T(__has_virtual_destructor(HasVirtDest))]; }
  { int arr[T(__has_virtual_destructor(DerivedVirtDest))]; }
  { int arr[F(__has_virtual_destructor(VirtDestAr))]; }
  { int arr[F(__has_virtual_destructor(void))]; }
  { int arr[F(__has_virtual_destructor(cvoid))]; }
  { int arr[F(__has_virtual_destructor(AllPrivate))]; }
}

class Base {};
class Derived : Base {};
class Derived2a : Derived {};
class Derived2b : Derived {};
class Derived3 : virtual Derived2a, virtual Derived2b {};
template<typename T> struct BaseA { T a;  };
template<typename T> struct DerivedB : BaseA<T> { };
template<typename T> struct CrazyDerived : T { };

class class_forward; // expected-note {{forward declaration of 'class_forward'}}

template <typename Base, typename Derived>
void isBaseOfT() {
  int t[T(__is_base_of(Base, Derived))];
};
template <typename Base, typename Derived>
void isBaseOfF() {
  int t[F(__is_base_of(Base, Derived))];
};

template <class T> class DerivedTemp : Base {};
template <class T> class NonderivedTemp {};
template <class T> class UndefinedTemp; // expected-note {{declared here}}

void is_base_of() {
  { int arr[T(__is_base_of(Base, Derived))]; }
  { int arr[T(__is_base_of(const Base, Derived))]; }
  { int arr[F(__is_base_of(Derived, Base))]; }
  { int arr[F(__is_base_of(Derived, int))]; }
  { int arr[T(__is_base_of(Base, Base))]; }
  { int arr[T(__is_base_of(Base, Derived3))]; }
  { int arr[T(__is_base_of(Derived, Derived3))]; }
  { int arr[T(__is_base_of(Derived2b, Derived3))]; }
  { int arr[T(__is_base_of(Derived2a, Derived3))]; }
  { int arr[T(__is_base_of(BaseA<int>, DerivedB<int>))]; }
  { int arr[F(__is_base_of(DerivedB<int>, BaseA<int>))]; }
  { int arr[T(__is_base_of(Base, CrazyDerived<Base>))]; }
  { int arr[F(__is_base_of(Union, Union))]; }
  { int arr[T(__is_base_of(Empty, Empty))]; }
  { int arr[T(__is_base_of(class_forward, class_forward))]; }
  { int arr[F(__is_base_of(Empty, class_forward))]; } // expected-error {{incomplete type 'class_forward' used in type trait expression}}
  { int arr[F(__is_base_of(Base&, Derived&))]; }
  int t18[F(__is_base_of(Base[10], Derived[10]))];
  { int arr[F(__is_base_of(int, int))]; }
  { int arr[F(__is_base_of(long, int))]; }
  { int arr[T(__is_base_of(Base, DerivedTemp<int>))]; }
  { int arr[F(__is_base_of(Base, NonderivedTemp<int>))]; }
  { int arr[F(__is_base_of(Base, UndefinedTemp<int>))]; } // expected-error {{implicit instantiation of undefined template 'UndefinedTemp<int>'}}

  isBaseOfT<Base, Derived>();
  isBaseOfF<Derived, Base>();

  isBaseOfT<Base, CrazyDerived<Base> >();
  isBaseOfF<CrazyDerived<Base>, Base>();

  isBaseOfT<BaseA<int>, DerivedB<int> >();
  isBaseOfF<DerivedB<int>, BaseA<int> >();
}

template<class T, class U>
class TemplateClass {};

template<class T>
using TemplateAlias = TemplateClass<T, int>;

typedef class Base BaseTypedef;

void is_same()
{
  int t01[T(__is_same(Base, Base))];
  int t02[T(__is_same(Base, BaseTypedef))];
  int t03[T(__is_same(TemplateClass<int, int>, TemplateAlias<int>))];

  int t10[F(__is_same(Base, const Base))];
  int t11[F(__is_same(Base, Base&))];
  int t12[F(__is_same(Base, Derived))];
}

struct IntWrapper
{
  int value;
  IntWrapper(int _value) : value(_value) {}
  operator int() const {
    return value;
  }
};

struct FloatWrapper
{
  float value;
  FloatWrapper(float _value) : value(_value) {}
  FloatWrapper(const IntWrapper& obj)
    : value(static_cast<float>(obj.value)) {}
  operator float() const {
    return value;
  }
  operator IntWrapper() const {
    return IntWrapper(static_cast<int>(value));
  }
};

void is_convertible()
{
  int t01[T(__is_convertible(IntWrapper, IntWrapper))];
  int t02[T(__is_convertible(IntWrapper, const IntWrapper))];
  int t03[T(__is_convertible(IntWrapper, int))];
  int t04[T(__is_convertible(int, IntWrapper))];
  int t05[T(__is_convertible(IntWrapper, FloatWrapper))];
  int t06[T(__is_convertible(FloatWrapper, IntWrapper))];
  int t07[T(__is_convertible(FloatWrapper, float))];
  int t08[T(__is_convertible(float, FloatWrapper))];
}

struct FromInt { FromInt(int); };
struct ToInt { operator int(); };
typedef void Function();

void is_convertible_to();
class PrivateCopy {
  PrivateCopy(const PrivateCopy&);
  friend void is_convertible_to();
};

template<typename T>
struct X0 {
  template<typename U> X0(const X0<U>&);
};

struct Abstract { virtual void f() = 0; };

void is_convertible_to() {
  { int arr[T(__is_convertible_to(Int, Int))]; }
  { int arr[F(__is_convertible_to(Int, IntAr))]; }
  { int arr[F(__is_convertible_to(IntAr, IntAr))]; }
  { int arr[T(__is_convertible_to(void, void))]; }
  { int arr[T(__is_convertible_to(cvoid, void))]; }
  { int arr[T(__is_convertible_to(void, cvoid))]; }
  { int arr[T(__is_convertible_to(cvoid, cvoid))]; }
  { int arr[T(__is_convertible_to(int, FromInt))]; }
  { int arr[T(__is_convertible_to(long, FromInt))]; }
  { int arr[T(__is_convertible_to(double, FromInt))]; }
  { int arr[T(__is_convertible_to(const int, FromInt))]; }
  { int arr[T(__is_convertible_to(const int&, FromInt))]; }
  { int arr[T(__is_convertible_to(ToInt, int))]; }
  { int arr[T(__is_convertible_to(ToInt, const int&))]; }
  { int arr[T(__is_convertible_to(ToInt, long))]; }
  { int arr[F(__is_convertible_to(ToInt, int&))]; }
  { int arr[F(__is_convertible_to(ToInt, FromInt))]; }
  { int arr[T(__is_convertible_to(IntAr&, IntAr&))]; }
  { int arr[T(__is_convertible_to(IntAr&, const IntAr&))]; }
  { int arr[F(__is_convertible_to(const IntAr&, IntAr&))]; }
  { int arr[F(__is_convertible_to(Function, Function))]; }
  { int arr[F(__is_convertible_to(PrivateCopy, PrivateCopy))]; }
  { int arr[T(__is_convertible_to(X0<int>, X0<float>))]; }
  { int arr[F(__is_convertible_to(Abstract, Abstract))]; }
}

namespace is_convertible_to_instantiate {
  // Make sure we don't try to instantiate the constructor.
  template<int x> class A { A(int) { int a[x]; } };
  int x = __is_convertible_to(int, A<-1>);
}

void is_trivial()
{
  { int arr[T(__is_trivial(int))]; }
  { int arr[T(__is_trivial(Enum))]; }
  { int arr[T(__is_trivial(POD))]; }
  { int arr[T(__is_trivial(Int))]; }
  { int arr[T(__is_trivial(IntAr))]; }
  { int arr[T(__is_trivial(IntArNB))]; }
  { int arr[T(__is_trivial(Statics))]; }
  { int arr[T(__is_trivial(Empty))]; }
  { int arr[T(__is_trivial(EmptyUnion))]; }
  { int arr[T(__is_trivial(Union))]; }
  { int arr[T(__is_trivial(Derives))]; }
  { int arr[T(__is_trivial(DerivesAr))]; }
  { int arr[T(__is_trivial(DerivesArNB))]; }
  { int arr[T(__is_trivial(DerivesEmpty))]; }
  { int arr[T(__is_trivial(HasFunc))]; }
  { int arr[T(__is_trivial(HasOp))]; }
  { int arr[T(__is_trivial(HasConv))]; }
  { int arr[T(__is_trivial(HasAssign))]; }
  { int arr[T(__is_trivial(HasAnonymousUnion))]; }
  { int arr[T(__is_trivial(HasPriv))]; }
  { int arr[T(__is_trivial(HasProt))]; }
  { int arr[T(__is_trivial(DerivesHasPriv))]; }
  { int arr[T(__is_trivial(DerivesHasProt))]; }
  { int arr[T(__is_trivial(Vector))]; }
  { int arr[T(__is_trivial(VectorExt))]; }

  { int arr[F(__is_trivial(HasCons))]; }
  { int arr[F(__is_trivial(HasCopyAssign))]; }
  { int arr[F(__is_trivial(HasMoveAssign))]; }
  { int arr[F(__is_trivial(HasDest))]; }
  { int arr[F(__is_trivial(HasRef))]; }
  { int arr[F(__is_trivial(HasNonPOD))]; }
  { int arr[F(__is_trivial(HasVirt))]; }
  { int arr[F(__is_trivial(DerivesHasCons))]; }
  { int arr[F(__is_trivial(DerivesHasCopyAssign))]; }
  { int arr[F(__is_trivial(DerivesHasMoveAssign))]; }
  { int arr[F(__is_trivial(DerivesHasDest))]; }
  { int arr[F(__is_trivial(DerivesHasRef))]; }
  { int arr[F(__is_trivial(DerivesHasVirt))]; }
  { int arr[F(__is_trivial(void))]; }
  { int arr[F(__is_trivial(cvoid))]; }
}

void trivial_checks()
{
  { int arr[T(__is_trivially_copyable(int))]; }
  { int arr[T(__is_trivially_copyable(Enum))]; }
  { int arr[T(__is_trivially_copyable(POD))]; }
  { int arr[T(__is_trivially_copyable(Int))]; }
  { int arr[T(__is_trivially_copyable(IntAr))]; }
  { int arr[T(__is_trivially_copyable(IntArNB))]; }
  { int arr[T(__is_trivially_copyable(Statics))]; }
  { int arr[T(__is_trivially_copyable(Empty))]; }
  { int arr[T(__is_trivially_copyable(EmptyUnion))]; }
  { int arr[T(__is_trivially_copyable(Union))]; }
  { int arr[T(__is_trivially_copyable(Derives))]; }
  { int arr[T(__is_trivially_copyable(DerivesAr))]; }
  { int arr[T(__is_trivially_copyable(DerivesArNB))]; }
  { int arr[T(__is_trivially_copyable(DerivesEmpty))]; }
  { int arr[T(__is_trivially_copyable(HasFunc))]; }
  { int arr[T(__is_trivially_copyable(HasOp))]; }
  { int arr[T(__is_trivially_copyable(HasConv))]; }
  { int arr[T(__is_trivially_copyable(HasAssign))]; }
  { int arr[T(__is_trivially_copyable(HasAnonymousUnion))]; }
  { int arr[T(__is_trivially_copyable(HasPriv))]; }
  { int arr[T(__is_trivially_copyable(HasProt))]; }
  { int arr[T(__is_trivially_copyable(DerivesHasPriv))]; }
  { int arr[T(__is_trivially_copyable(DerivesHasProt))]; }
  { int arr[T(__is_trivially_copyable(Vector))]; }
  { int arr[T(__is_trivially_copyable(VectorExt))]; }
  { int arr[T(__is_trivially_copyable(HasCons))]; }
  { int arr[T(__is_trivially_copyable(HasRef))]; }
  { int arr[T(__is_trivially_copyable(HasNonPOD))]; }
  { int arr[T(__is_trivially_copyable(DerivesHasCons))]; }
  { int arr[T(__is_trivially_copyable(DerivesHasRef))]; }

  { int arr[F(__is_trivially_copyable(HasCopyAssign))]; }
  { int arr[F(__is_trivially_copyable(HasMoveAssign))]; }
  { int arr[F(__is_trivially_copyable(HasDest))]; }
  { int arr[F(__is_trivially_copyable(HasVirt))]; }
  { int arr[F(__is_trivially_copyable(DerivesHasCopyAssign))]; }
  { int arr[F(__is_trivially_copyable(DerivesHasMoveAssign))]; }
  { int arr[F(__is_trivially_copyable(DerivesHasDest))]; }
  { int arr[F(__is_trivially_copyable(DerivesHasVirt))]; }
  { int arr[F(__is_trivially_copyable(void))]; }
  { int arr[F(__is_trivially_copyable(cvoid))]; }

  { int arr[T((__is_trivially_constructible(int)))]; }
  { int arr[T((__is_trivially_constructible(int, int)))]; }
  { int arr[T((__is_trivially_constructible(int, float)))]; }
  { int arr[T((__is_trivially_constructible(int, int&)))]; }
  { int arr[T((__is_trivially_constructible(int, const int&)))]; }
  { int arr[T((__is_trivially_constructible(int, int)))]; }
  { int arr[T((__is_trivially_constructible(HasCopyAssign, HasCopyAssign)))]; }
  { int arr[T((__is_trivially_constructible(HasCopyAssign, const HasCopyAssign&)))]; }
  { int arr[T((__is_trivially_constructible(HasCopyAssign, HasCopyAssign&&)))]; }
  { int arr[T((__is_trivially_constructible(HasCopyAssign)))]; }
  { int arr[T((__is_trivially_constructible(NonTrivialDefault,
                                            const NonTrivialDefault&)))]; }
  { int arr[T((__is_trivially_constructible(NonTrivialDefault,
                                            NonTrivialDefault&&)))]; }
  { int arr[T((__is_trivially_constructible(AllDefaulted)))]; }
  { int arr[T((__is_trivially_constructible(AllDefaulted,
                                            const AllDefaulted &)))]; }
  { int arr[T((__is_trivially_constructible(AllDefaulted,
                                            AllDefaulted &&)))]; }

  { int arr[F((__is_trivially_constructible(int, int*)))]; }
  { int arr[F((__is_trivially_constructible(NonTrivialDefault)))]; }
  { int arr[F((__is_trivially_constructible(ThreeArgCtor, int*, char*, int&)))]; }
  { int arr[F((__is_trivially_constructible(AllDeleted)))]; }
  { int arr[F((__is_trivially_constructible(AllDeleted,
                                            const AllDeleted &)))]; }
  { int arr[F((__is_trivially_constructible(AllDeleted,
                                            AllDeleted &&)))]; }
  { int arr[F((__is_trivially_constructible(ExtDefaulted)))]; }
  { int arr[F((__is_trivially_constructible(ExtDefaulted,
                                            const ExtDefaulted &)))]; }
  { int arr[F((__is_trivially_constructible(ExtDefaulted,
                                            ExtDefaulted &&)))]; }

  { int arr[T((__is_trivially_assignable(int&, int)))]; }
  { int arr[T((__is_trivially_assignable(int&, int&)))]; }
  { int arr[T((__is_trivially_assignable(int&, int&&)))]; }
  { int arr[T((__is_trivially_assignable(int&, const int&)))]; }
  { int arr[T((__is_trivially_assignable(POD&, POD)))]; }
  { int arr[T((__is_trivially_assignable(POD&, POD&)))]; }
  { int arr[T((__is_trivially_assignable(POD&, POD&&)))]; }
  { int arr[T((__is_trivially_assignable(POD&, const POD&)))]; }
  { int arr[T((__is_trivially_assignable(int*&, int*)))]; }
  { int arr[T((__is_trivially_assignable(AllDefaulted,
                                         const AllDefaulted &)))]; }
  { int arr[T((__is_trivially_assignable(AllDefaulted,
                                         AllDefaulted &&)))]; }

  { int arr[F((__is_trivially_assignable(int*&, float*)))]; }
  { int arr[F((__is_trivially_assignable(HasCopyAssign&, HasCopyAssign)))]; }
  { int arr[F((__is_trivially_assignable(HasCopyAssign&, HasCopyAssign&)))]; }
  { int arr[F((__is_trivially_assignable(HasCopyAssign&, const HasCopyAssign&)))]; }
  { int arr[F((__is_trivially_assignable(HasCopyAssign&, HasCopyAssign&&)))]; }
  { int arr[F((__is_trivially_assignable(TrivialMoveButNotCopy&,
                                        TrivialMoveButNotCopy&)))]; }
  { int arr[F((__is_trivially_assignable(TrivialMoveButNotCopy&,
                                        const TrivialMoveButNotCopy&)))]; }
  { int arr[F((__is_trivially_assignable(AllDeleted,
                                         const AllDeleted &)))]; }
  { int arr[F((__is_trivially_assignable(AllDeleted,
                                         AllDeleted &&)))]; }
  { int arr[F((__is_trivially_assignable(ExtDefaulted,
                                         const ExtDefaulted &)))]; }
  { int arr[F((__is_trivially_assignable(ExtDefaulted,
                                         ExtDefaulted &&)))]; }

  { int arr[T((__is_trivially_assignable(HasDefaultTrivialCopyAssign&,
                                         HasDefaultTrivialCopyAssign&)))]; }
  { int arr[T((__is_trivially_assignable(HasDefaultTrivialCopyAssign&,
                                       const HasDefaultTrivialCopyAssign&)))]; }
  { int arr[T((__is_trivially_assignable(TrivialMoveButNotCopy&,
                                         TrivialMoveButNotCopy)))]; }
  { int arr[T((__is_trivially_assignable(TrivialMoveButNotCopy&,
                                         TrivialMoveButNotCopy&&)))]; }
}

// Instantiation of __is_trivially_constructible
template<typename T, typename ...Args>
struct is_trivially_constructible {
  static const bool value = __is_trivially_constructible(T, Args...);
};

void is_trivially_constructible_test() {
  { int arr[T((is_trivially_constructible<int>::value))]; }
  { int arr[T((is_trivially_constructible<int, int>::value))]; }
  { int arr[T((is_trivially_constructible<int, float>::value))]; }
  { int arr[T((is_trivially_constructible<int, int&>::value))]; }
  { int arr[T((is_trivially_constructible<int, const int&>::value))]; }
  { int arr[T((is_trivially_constructible<int, int>::value))]; }
  { int arr[T((is_trivially_constructible<HasCopyAssign, HasCopyAssign>::value))]; }
  { int arr[T((is_trivially_constructible<HasCopyAssign, const HasCopyAssign&>::value))]; }
  { int arr[T((is_trivially_constructible<HasCopyAssign, HasCopyAssign&&>::value))]; }
  { int arr[T((is_trivially_constructible<HasCopyAssign>::value))]; }
  { int arr[T((is_trivially_constructible<NonTrivialDefault,
                                            const NonTrivialDefault&>::value))]; }
  { int arr[T((is_trivially_constructible<NonTrivialDefault,
                                            NonTrivialDefault&&>::value))]; }

  { int arr[F((is_trivially_constructible<int, int*>::value))]; }
  { int arr[F((is_trivially_constructible<NonTrivialDefault>::value))]; }
  { int arr[F((is_trivially_constructible<ThreeArgCtor, int*, char*, int&>::value))]; }
}

void array_rank() {
  int t01[T(__array_rank(IntAr) == 1)];
  int t02[T(__array_rank(ConstIntArAr) == 2)];
}

void array_extent() {
  int t01[T(__array_extent(IntAr, 0) == 10)];
  int t02[T(__array_extent(ConstIntArAr, 0) == 4)];
  int t03[T(__array_extent(ConstIntArAr, 1) == 10)];
}

{'content_hash': '310e6a6c85e910692e03f167be3ac95a', 'timestamp': '', 'source': 'github', 'line_count': 1925, 'max_line_length': 145, 'avg_line_length': 37.17818181818182, 'alnum_prop': 0.6406773977196513, 'repo_name': 'indashnet/InDashNet.Open.UN2000', 'id': 'aa18ff4e67afb278c181777b559b5073901861d4', 'size': '71709', 'binary': False, 'copies': '2', 'ref': 'refs/heads/master', 'path': 'android/external/clang/test/SemaCXX/type-traits.cpp', 'mode': '33188', 'license': 'apache-2.0', 'language': []}


Brooklynský most (anglicky Brooklyn Bridge, původně New York and Brooklyn Bridge) je jeden z nejstarších visutých mostů ve Spojených státech amerických.

Má rozpětí mezi pilíři 486,3 metrů a vede přes řeku East River. Spojuje dvě části New Yorku - Manhattan a Brooklyn. V době jeho otevření se jednalo o největší visutý most na světě a první visutý most na ocelových lanech. Jeho mostní věže byly v té době nejvyššími stavbami na celé západní polokouli. Stavba začala 3. ledna 1870. Most byl dokončen po 13 letech a byl otevřen 24. května 1883.

Od svého otevření se stal symbolem New Yorku a od roku 1964 patří mezi národní historické památky. Přes tento most také vede trasa Newyorského maratonu.

Historie

Výstavba

Most se rozhodl vybudovat John Augustus Roebling. Snil o Brooklynském mostě jako svém největším díle. Po strašné zimě 1866 - 1867, kdy zkolabovala doprava, poté, co všechny lodě zamrzly, se město rozhodlo, že se postaví most přes řeku East River. Stavba byla schválena roku 1869. Poté začali vybírat místo stavby. Avšak při poslední kontrole místa si Roebling nevšiml připlouvající lodi. Ta mu při nárazu do mola rozdrtila nohu. Museli mu amputovat prsty na noze a dva týdny na to zemřel na infekci. Jeho místo převzal jeho syn Washington Roebling, v posledních deseti letech stavby zastupován svou manželkou Emily Warren Roebling.

Stavba byla zahájena 3. ledna 1870.

Pro vybudování základů věží pod úrovní hladiny vody byly použity kesony. Velký zvon se spustil do vody tak, aby se jeho spodní hrana zařízla do dna a jeho vrchní část vyčnívala nad hladinu. Pak se z něj odčerpala voda za pomocí vzduchu, který byl vtlačen do zvonu a vodu vytlačil. Použití kesonů manželé Roeblingovi nastudovali na své cestě do Evropy v roce 1865.

Věže jsou postaveny z vápence, žuly a cementu. Jsou postaveny v novogotickém stylu, s charakteristickými lomenými oblouky ve věžích.

Cena výstavby celého mostu byla vyčíslena na tehdy neuvěřitelných 15,5 miliónu dolarů. Tehdy se ještě moc nehledělo na bezpečnost a zdraví dělníků při práci, také nebyl dostatečně znám princip a možnosti kompenzace kesonové (dekompresní) nemoci, a proto zemřelo 27 lidí během jeho výstavby.

Kvůli dekompresní nemoci zůstal po několika letech vedoucí projektu Washington Roebling upoután na lůžko a nemohl dále docházet na stavbu. Od roku 1873 až do dokončení stavby proto velkou část úkolů hlavní inženýrky převzala Emily Warren Roebling. Doplnila si potřebné technické znalosti a dovednosti z oboru stavebního inženýrství. Dojížděla na stavbu a fungovala jako spojka s dalšími inženýry a dělníky, vyjednávala s politiky a členy dozorčí rady, dohlížela na smlouvy a nákupy materiálů, starala se o každodenní řízení projektu.

Slavnostní otevření
Ve dne 24. května 1883 byl po 13 letech stavby most dokončen a otevřen pro veřejnost, toho dne se u mostu sešly tisíce lidí, které přivítal newyorský starosta Franklin Edson, ale i tehdejší 21. prezident Spojených států Chester A. Arthur. První osobou, která most přejela, byla Emily Warren Roebling, údajně s kohoutem pro štěstí. Lidé přecházeli most, aby se setkali s brooklynským starostou Sethem Lowem, který na ně čekal pod mostní věží na brooklynském břehu. Washington Roebling se slavnostního otevření neúčastnil, ale doma u Roeblingových se konal večírek na oslavu otevření. Toho dne most využilo asi 1 800 vozidel a 150 300 osob.

Planý poplach
30. května 1883 se na mostě rozkřiklo, že most nezvládá nápor lidí, a že se může zřítit, a proto na mostě zavládla panika, při které se lidé na mostě snažili co nejrychleji dostat z mostu. Při této události bylo ušlapáno 12 lidí. O pár dní později byly pochybnosti o stabilitě mostu vyvráceny, když se po mostě vydalo 21 slonů z nedalekého cirkusu.

První sebevrah
19. května 1885 skočil z mostu první člověk který chtěl spáchat sebevraždu. Po dopadu utrpěl vážná vnitřní zranění a zemřel.

Osvětlení mostu
Od roku 1980 se stal most jednou z dominant nočního New Yorku poté, co byly jeho věže osvětleny pomocí reflektorů.

Střelba na mostě
Dne 1. března 1994 se na mostě střílelo. Muž jménem Rashid Baz zahájil palbu na skupinu ortodoxních židů. Jednoho člověka smrtelně postřelil a další tři zranil. Předpokládá se, že šlo o pomstu za útok na muslimy, který se odehrál v únoru, pár dní předtím. Baz byl usvědčen z vraždy, a protože v roce 2000 ministerstvo spravedlnosti to označilo jako teroristický útok, i když zabil pouze jednoho člověka, byl odsouzen na 141 let vězení.

Zmařený teroristický útok
V roce 2003 byl člověk, který podporoval teroristické hnutí Al-Káida odsouzen na 20 let vězení za to, že připravoval útok, při kterém měl být most zničen tím, že by se přeřezala mostní lana. Most by pak neunesl svoji vlastní tíhu a následkem toho by se zřítil.

Nález zásob v bunkru
Počátkem roku 2006 při opravě mostu obnažili dělníci v pilíři tajnou skrýš, vybudovanou v roce 1950 v době studené války. Vchod byl zamaskován ve stěně od strany Manhattanu. V tajné schránce byly nalezeny značné zásoby - 350 000 kovových dóz se suchary, zařízení na čištění vzduchu, přikrývky, lékařské přístroje.

Provoz

Později byla na mostě vybudována nadzemní dráha a dráha pro tramvaje. Trasa nadzemní dráhy byla zrušena v roce 1944 a v roce 1950 byly zrušeny i tramvajové koleje. Poté byl most přebudován na šest jízdních pruhů pro automobily, pro každý směr tři pruhy na krajích mostu a mezi nimi uprostřed vede pás pro chodce a cyklisty. Dnes je Brooklynský most druhý nejfrekventovanější most v New Yorku. Díky rychle narůstajícímu počtu automobilů a s tím spojenou houstnoucí dopravou museli na mostě zavést zákaz pro automobily těžší než 2,7 tuny, proto přes most dnes nejezdí ani autobusy městské hromadné dopravy. V dnešní době projede přes most necelých 150 000 aut denně.

Ve filmu
Tento most a jeho výstavba je zachycena v americkém romantickém hraném filmu Kate a Leopold z roku 2001. Rovněž v australském dokumentárním TV seriálu Nejúžasnější díla lidských rukou.

Statistika
 výška 84 m
 šířka 26 m
 3 mostová pole jsou spojena 2 gotickými pilíři
 střední pole měří 486,3 m
 stál 15,5 mil. dolarů
 při stavbě zahynulo 27 osob

Panorama mostu

Reference

Externí odkazy

 Mosty v New Yorku

Mosty v New Yorku
Manhattan
Brooklyn
Silniční mosty v USA
Ocelové mosty
Visuté mosty
Objekty a místa na National Register of Historic Places v New Yorku (stát)

{'title': 'Brooklynský most', 'url': 'https://cs.wikipedia.org/wiki/Brooklynsk%C3%BD%20most', 'language': 'cs', 'timestamp': '20230320'}


Tropic Splash: Fruity. Juicy citrus. Mango punch. Neon burst.
Peony Crush: Floral. Exotic flower. Violet petals. Wild kiss.
Coconut Twist: Warm. Lemon squeeze. Coconut milk. Bright daze.
Marine Chill: Warm. Fresh pear. Aqua woods. Cool rush.

{'timestamp': '2019-04-19T02:49:35Z', 'url': 'https://www.beautyspot.my/products/pre-order-victorias-secret-neon-botanicals-fragrance-mist', 'language': 'en', 'source': 'c4'}


Billerbeck steht für:
 Billerbeck (niedersächsisch-pommersches Adelsgeschlecht), niedersächsisches Adelsgeschlecht mit Besitzungen in Pommern
 Billerbeck (westfälische Adelsgeschlechter), drei Adelsgeschlechter aus dem Münsterland
 Billerbeck (Lune), kleiner Wiesenfluss in der Wesermünder Geest, der in die Lune mündet
 Billerbeck (Barnstedt-Melbecker Bach), Bach im Landkreis Lüneburg, der in den Barnstedt-Melbecker Bach mündet

Orte:
 Billerbeck, Stadt im Kreis Coesfeld in Nordrhein-Westfalen
 Billerbeck (Einbeck), Ortsteil der Stadt Einbeck im Landkreis Northeim in Niedersachsen
 Billerbeck (Horn-Bad Meinberg), Ortsteil der Stadt Horn-Bad Meinberg im Kreis Lippe in Nordrhein-Westfalen
 Billerbeck (Schnega), Ortsteil der Gemeinde Schnega im Landkreis Lüchow-Dannenberg in Niedersachsen
 Billerbeck, Ort im ehemaligen Landkreis Pyritz, siehe Nadarzyn (Pełczyce)
 Billerbeck (Osterburg), Wohnplatz im Ortsteil Zedau der Hansestadt Osterburg (Altmark) im Landkreis Stendal in Sachsen-Anhalt

Personen:
 August Billerbeck (1778–1844), deutscher Pädagoge und Schulleiter, Begründer des Schullehrer-Seminars zu Rheden
 Bernhard von Billerbeck, Vizedominus und Domherr in Münster
 Bernhard von Billerbeck (Domherr) († 1336), Domherr in Münster
 Bettina Billerbeck (* 1972), deutsche Chefredakteurin
 Brunsten von Billerbeck († 1297), Domdechant und Domherr in Münster
 Carl Gottfried von Billerbeck (1721–1761), preußischer Major
 Constantin von Billerbeck (1673–1744), preußischer Oberst und Kommandant der Festung Pillau
 Delff Billerbeck (1793–1877), Hamburger Viehhändler und Abgeordneter
 Christoph von Billerbeck (1714–1790), preußischer Oberst
 Frieder Billerbeck (* 1993), deutscher Segelsportler
 Hasso Billerbeck (1940–2011), deutscher Schauspieler und Synchronsprecher

 Helmut Billerbeck, deutscher Rugbyspieler
 Hermann von Billerbeck, Domherr in Münster
 Hermann Billerbeck (1656–1706), deutscher lutherischer Theologe
 Johann Christoph von Billerbeck (1703–1777), preußischer Generalleutnant
 Konstantin von Billerbeck (1713–1785), preußischer Generalleutnant
 Liane von Billerbeck (* 1957), deutsche Journalistin
 Margarethe Billerbeck (* 1945), Schweizer Altphilologin
 Max Billerbeck (* 1986), deutscher Segelsportler
 Paul Billerbeck (1853–1932), deutscher evangelischer Theologe und Judaist
 Robert Billerbeck (1920–1993), deutscher Filmtheaterbetreiber
 Ulrich Billerbeck (1936–2013), deutscher Soziologe
 Uwe Billerbeck (* 1970), deutscher Turner

Siehe auch:
 Strack/Billerbeck
 Leuchtturm Billerbek (historisch Billerbeck)

{'title': 'Billerbeck (Begriffsklärung)', 'url': 'https://de.wikipedia.org/wiki/Billerbeck%20%28Begriffskl%C3%A4rung%29', 'language': 'de', 'timestamp': '20230320'}


30e Infanteriedivisie (Wehrmacht) - Duitse legereenheid
 30e Infanteriedivisie (Verenigd Koninkrijk) - Britse legereenheid
 30e Infanteriedivisie (Polen) - Poolse legereenheid
 30e Infanteriedivisie (Verenigde Staten) - Amerikaanse legereenheid

{'title': '30e Infanteriedivisie', 'url': 'https://nl.wikipedia.org/wiki/30e%20Infanteriedivisie', 'language': 'nl', 'timestamp': '20230320'}


RelationVertex::RelationVertex(size_t idx, size_t primitiveIdx1)
{
    _relationVertexType = RVT_SINGLE_PRIMITIVE;
    _idx = idx;
    _primitiveIdx1 = primitiveIdx1;
    _parent = idx;
}

RelationVertex::RelationVertex(size_t idx, size_t primitiveIdx1, size_t primitiveIdx2)
{
    _relationVertexType = RVT_DOUBLE_PRIMITIVE;
    _idx = idx;
    _primitiveIdx1 = primitiveIdx1;
    _primitiveIdx2 = primitiveIdx2;
    _parent = idx;
}

RelationVertex::~RelationVertex(void)
{
}

size_t RelationVertex::getPrimitiveIdx1() const
{
    assert(_relationVertexType>=RVT_SINGLE_PRIMITIVE);
    return _primitiveIdx1;
}

size_t RelationVertex::getPrimitiveIdx2() const
{
    assert(_relationVertexType>=RVT_DOUBLE_PRIMITIVE);
    return _primitiveIdx2;
}

bool RelationVertex::operator<(const RelationVertex& other) const
{
    return _primitiveIdx1 < other._primitiveIdx1
        || (_primitiveIdx1 == other._primitiveIdx1 && _primitiveIdx2 < other._primitiveIdx2);
}


Кивок голови - це жест, при якому голова нахиляється поперемінно дугами вгору і вниз вздовж сагітальної площини. У багатьох культурах він найчастіше, але не всюди, використовується для позначення згоди чи прийняття.

Як знак згоди
Різні культури надають цьому жесту різні значення. Кивання на знак "так" широко поширене і з'являється у великій кількості різноманітних культурних та мовних групах. Території, в яких кивання, як правило, набуває такого значення, включають Індійський субконтинент (зверніть увагу, що похитування голови також означає згоду), Близький Схід, Південно-Східна Азія, більша частина Європи (див. нижче), Південна Америка та Північна Америка. Кивок голови також можна використовувати як знак визнання або як прояв поваги.

У Греції один кивок голови вниз, що вказує на «так», часто поєднується з одночасним закриттям очей. Цей кивок зазвичай також включає дуже легкий, майже непомітний поворот голови вліво (або вправо).

Раннім описом кивків голови та інших жестів було «Вираження емоцій у людини та тварин»(англ. The Expression of the Emotions in Man and Animals), написане Чарльзом Дарвіном у 1872 році. Дарвін писав місіонерам у багатьох частинах світу з проханням надати інформацію про місцеві жести, і зробив висновок, що кивок на «так» був спільним для багатьох різних груп.

Існують різні теорії, чому кивок так часто використовується для позначення згоди. Одна проста теорія полягає в тому, що це форма поклону, яка вказує на те, що людина готова прийняти те, що інша людина говорить або просить. Також було зазначено, що немовлята, коли голодні, шукають молоко, рухаючи головою вертикально, але відмовляються від молока, повертаючи голову з боку в бік.

Як знак незгоди
Є кілька винятків: у Греції, на Кіпрі, в Ірані, Туреччині, Болгарії  Албанії та Сицилії один кивок голови вгору (а не вниз) вказує на «ні».

Зокрема, у Греції та на Кіпрі єдиний кивок голови вгору, який вказує на «ні», майже завжди поєднується з одночасним підняттям брів і найчастіше також з легким (або повним) закочуванням очей. Існує також звук, який іноді супроводжує весь жест, що називається "τσου". Використання "τσου" необов'язкове і застосовується лише для сильного наголосу на "ні".

Акцент на піднятих бровах і закочуванні очей дійшов до того, що сам похит голови вгору став другорядним. Людина може позначити «ні», просто піднявши брови і закотивши очі, при цьому голова залишається абсолютно нерухомою.

Як привітання
Кивком голови також можна використовувати як форму невербального привітання або підтвердження присутності людини; у цьому контексті це, по суті, м'яка форма поклону, з достатньою кількістю рухів, щоб виявити певну повагу без додаткових формальностей. Це включає в себе традиційний кивок вниз або кивок вгору (який є більш неформальним і зазвичай використовується серед друзів або підлеглих). Щоб збільшити офіційність, кивок вниз також може супроводжуватися відповідним словесним привітанням.

Синдром кивання
Кивання також є симптомом кивального синдрому голови, поки незрозумілої хвороби. Вражає переважно дітей віком до 15 років, і вперше був задокументований у Танзанії у 1962 р.

Примітки
Голова та шия
Жести


Zbigniew Cynkutis (ur. 18 sierpnia 1938 w Suwałkach, zm. 9 stycznia 1987 w Sobótce) – polski reżyser i aktor teatralny.

Życiorys
Absolwent Wydziału Aktorskiego PWSTiF w Łodzi (1960, dyplom 1962). W trakcie studiów wystąpił w filmach, m.in. zagrał Zawadę w Zamachu w reżyserii Jerzego Passendorfera, 1958, rola ta przysporzyła mu popularności, debiutował także w tym czasie na deskach teatru w roli Ignacego Nieśmiałowskiego w Klubie kawalerów Michała Bałuckiego w reżyserii Adama Danielewicza w Teatrze Powszechnym w Łodzi w 1960 roku.

21 czerwca 1960 roku ożenił się z Marią, a 19 stycznia 1963 roku urodziła im się córka Magdalena Maria.

W 1975 ukończył studia na Wydziale Reżyserii PWSFTviT w Łodzi – Studium Zaoczne. Bliski współpracownik Jerzego Grotowskiego w Teatrze Laboratorium we Wrocławiu. W 1984 roku nie podpisał aktu samorozwiązania Teatru Laboratorium. Objął kierownictwo Drugiego Studia Wrocławskiego, działającego od 1 stycznia 1985 w pomieszczeniach Teatru Laboratorium.

Zginął w wypadku samochodowym w drodze do Sobótki na II Forum Wrocławskiej Kultury.

Kariera teatralna
Zaraz po skończeniu studiów otrzymał angaż w Teatrze Ziemi Opolskiej (13 czerwca 1960), pracował tam przez jeden sezon 1960/1961. Już 22 kwietnia 1961 roku podpisał z Jerzym Grotowskim umowę o przejściu do Teatru 13 Rzędów, a 1 maja został oficjalnie zatrudniony w teatrze. Pierwszą rolą był Guślarz w Dziadach według Mickiewicza. W październiku 1961 roku wziął udział w realizacji faktomontażu Pamiętnik śląski jako Arka Bożek. Następnie został obsadzony w roli księcia Myszkina w Idiocie Fiodora Dostojewskiego, w adaptacji Waldemara Krygiera. W lutym 1962 roku zagrał tytułową rolę w premierowym przedstawieniu Kordiana Juliusza Słowackiego, w tym samym roku wystąpił w I wersji Akropolis Stanisława Wyspiańskiego. W listopadzie i grudniu 1962 roku zespół rozpoczął prace nad przedstawieniem Tragiczne dzieje doktora Fausta na motywach sztuki Christophera Marlowe’a, Cynkutis zagrał tytułowego Fausta. Grotowski wraz z Cynkutisem tworząc postać Fausta po raz pierwszy podjął próbę zbliżenia się do aktu całkowitego. Próba ta była jeszcze nieudana, jednakże i tak wykonanie Cynkutisa oceniano bardzo wysoko.

Rok 1964 był przełomowy w życiu zawodowym Cynkutisa, 1 września opuścił Opole i otrzymał angaż na dwa sezony w Teatrze Powszechnym w Łodzi. Wpływ na tę decyzję miały sytuacja rodzinna i wyczerpanie dotychczasową dynamiczną pracą w Teatrze Laboratorium. W Łodzi na początku zaangażował się w otwarcie wystawy obrazów Bogusława Balickiego, Jerzego Derkowskiego, Tomasza Jaśkiewicza, Jerzego Kudukisa, Henryka Strumiłło i Andrzeja Szonerta (luty 1964) w Galerii 20 przy ul. Piotrkowskiej.

W 1966 roku podjął pracę w Teatrze Laboratorium i pozostał w nim aż do końca istnienia zespołu. Po powrocie ponownie grał w Akropolis (najbardziej znany wariant V) oraz kreował partię Muleja w III wariancie Księcia Niezłomnego. W Apocalypsis cum figuris stworzył rolę Łazarza – wybranego przez pomyłkę, niespełnionego Umiłowanego.

Cynkutis nie brał udziału w pracach parateatralnych prowadzonych w Teatrze Laboratorium w latach 70. Prowadził autorskie staże aktorskie w Polsce i na świecie, a także reżyserował. W listopadzie 1972 roku w Teatrze im. Juliusza Osterwy w Lublinie rozpoczął próby do Jałowej na podstawie tekstu Federica Garcíi Lorki. W pracy tej wzięli udział także: Rena Mirecka, Jadwiga Jarmul, Barbara Koziarska, Urszula Rydzewska i Zbigniew Górski. Podobne prace realizował w ramach Laboratorium Analizy Zdarzenia, które działało pod egidą Instytutu Aktora Teatru Laboratorium. W poszczególnych ośrodkach formowały się grupy tworzące kolejne „zdarzenia”: Arka w Teatrze im. Juliusza Osterwy w Lublinie (praca zamknięta na początku roku 1974), Arche II w Dramatisches Centrum Wien (26 czerwca – 29 września 1974) i Door w Pittsburgu (premiera 2 kwietnia 1977).

Zbigniew Cynkutis w 1975 roku ukończył Studium Zaoczne na Wydziale Reżyserii łódzkiej PWSFTViT. W kolejnym roku współpracował z Kazimierzem Braunem, dyrektorem Teatru Współczesnego we Wrocławiu, prowadził tam ćwiczenia plastyczne, fizyczne i działania improwizacyjne.

Na przełomie listopada i grudnia zrealizował projekt „Czuwanie”. Także w tym roku objął funkcję zastępcy dyrektora Instytutu Aktora Teatru Laboratorium, którą pełnił do 1980. Był odpowiedzialny za realizację projektu należącego do kultury czynnej „Drzewo Ludzi”. W 1982 roku wygłosił cykl wykładów na Uniwersytecie Kansas w Lawrence, a także w Hamilton College w stanie Nowy Jork. W tym samym roku objął stanowisko profesora wizytującego w Hamilton College w Clinton (Kansas), gdzie wyreżyserował także spektakl Wasteland (Ziemia jałowa) inspirowany poematem Thomasa S. Eliota.

31 sierpnia 1984 roku oficjalnie przestał działać Instytut Aktora – Teatr Laboratorium, Cynkutis nie podpisał aktu samorozwiązania. Od władz Wrocławia przyjął propozycję i objął kierownictwo Drugiego Studia Wrocławskiego, które działało od 1 stycznia 1985 roku w salach Teatru Laboratorium.

Filmografia
 1958: Zamach – Zbyszek „Zawada”
 1960: Zezowate szczęście – oficer, którego Piszczyk pyta się o drogę do Zegrza
 1965: Podziemny front – Antek Balcer (odc. 1 i 2)

SpektakleCynkutis Zbigniew: Droga, [w:] tegoż: Aktor. Animator twórczych procesów, wybór i opracowanie tekstów Jolanta Cynkutis, ilustracje Zbigniew Cynkutis, Bill Ireland, redakcja Izabela Skórzyńska, Państwowa Wyższa Szkoła Filmowa, Telewizyjna i Teatralna, Łódź 2012, s. 24–96.
 Klub kawalerów (4 lutego 1960, Teatr Powszechny, Łódź)
 Słomkowy kapelusz (4 grudnia 1960, Teatr Ziemi Opolskiej, Opole)
 Przyjaciele (23 lutego 1961, Teatr Ziemi Opolskiej, Opole)
 Zielone rękawice (30 kwietnia 1961, Teatr Ziemi Opolskiej, Opole)
 Dziady (18 czerwca 1961, Teatr 13 Rzędów, Opole)
 Pamiętnik śląski (19 października 1961, Teatr 13 Rzędów, Opole)
 Idiota (21 października 1961, Teatr 13 Rzędów, Opole)
 Kordian (13 lutego 1962, Teatr 13 Rzędów, Opole)
 Akropolis (I wariant) (10 października 1962, Teatr Laboratorium 13 Rzędów, Opole)
 Akropolis (II wariant) (2 listopada 1962, Teatr Laboratorium 13 Rzędów, Opole)
 Tragicznie dzieje doktora Fausta (23 kwietnia 1963, Teatr Laboratorium 13 Rzędów, Opole)
 Szkoła żon (31 października 1964, Teatr Powszechny, Łódź)
 Dziady (3 kwietnia 1965, Teatr Powszechny, Łódź)
 Nasze miasto (8 stycznia 1966, Teatr Powszechny, Łódź)
 Dozorca (28 kwietnia 1966, Teatr Powszechny, Łódź)
 Akropolis (V wariant) (17 maja 1967, Instytut Badań Metody Aktorskiej –Teatr Laboratorium, Wrocław)
 Książę Niezłomny (19 marca 1968, Instytut Badań Metody Aktorskiej – Teatr Laboratorium, Wrocław)
 Apocalypsis cum figuris (19 lipca 1968, Instytut Badań Metody Aktorskiej – Teatr Laboratorium, Wrocław)

Reżyseria
 Jałowa. Zdarzenie teatralne (13 lutego 1973, Teatr im. Juliusza Osterwy, Lublin)
 Anna Livia (17 czerwca 1976, współpraca reżyserska, reż. Kazimierz Braun, Teatr Współczesny im. Edmunda Wiercińskiego, Wrocław)
 Matka Courage i jej dzieci (20 października 1976, współpraca reżyserska, reż. Kazimierz Braun, Teatr Współczesny im. Edmunda Wiercińskiego, Wrocław)
 Peer Gynt (30 grudnia 1976, reżyseria, scenariusz, Teatr Współczesny im. Edmunda Wiercińskiego, Wrocław)
 Animals (30 grudnia 1981, Werkhaus Theater, Moosach)
 Turandot (3 października 1986, opieka artystyczna, reż. Gendt van Dick, Drugie Studio Wrocławskie, Wrocław)

Zobacz też
 Instytut im. Jerzego Grotowskiego
 Uniwersytetu Poszukiwań Teatru Narodów

Przypisy

Bibliografia
 Aktor. Animator twórczych procesów, wybór i opracowanie tekstów Jolanta Cynkutis, ilustracje Zbigniew Cynkutis, Bill Ireland, redakcja Izabela Skórzyńska, Państwowa Wyższa Szkoła Filmowa, Telewizyjna i Teatralna, Łódź 2012.
 Jarosław Cymerman: Z Mekki do Medyny. Rena Mirecka i Zbigniew Cynkutis w Teatrze im. Juliusza Osterwy, „Performer” 2016 nr 11–12.
 Zbigniew Osiński: O Zbyszku Cynkutisie. Wprowadzenie do jego listów, „Notatnik Teatralny” 2000 nr 20–21, s. 219–222.

Linki zewnętrzne

Absolwenci Państwowej Wyższej Szkoły Filmowej, Telewizyjnej i Teatralnej im. Leona Schillera w Łodzi
Aktorzy związani z Wrocławiem
Ludzie urodzeni w Suwałkach
Polscy aktorzy teatralni
Polscy reżyserzy teatralni
Polskie ofiary wypadków drogowych
Pochowani na Cmentarzu Grabiszyńskim we Wrocławiu
Urodzeni w 1938
Zmarli w 1987
Instytut Grotowskiego

{'title': 'Zbigniew Cynkutis', 'url': 'https://pl.wikipedia.org/wiki/Zbigniew%20Cynkutis', 'language': 'pl', 'timestamp': '20230320'}