// CUDA struct types with interesting initialization properties.
// Keep in sync with ../SemaCUDA/Inputs/cuda-initializers.h.
// Base classes with different initializer variants.
// trivial constructor -- allowed
;
// empty constructor
;
// empty destructor
;
;
// empty templated constructor -- allowed with no arguments
;
// undefined constructor -- not allowed
;
// undefined destructor -- not allowed
;
// empty constructor w/ initializer list -- not allowed
;
// non-empty constructor -- not allowed
;
// non-empty destructor -- not allowed
;
// no-constructor, virtual method -- not allowed
;
// virtual destructor -- not allowed.
;
// dynamic in-class field initializer -- not allowed
__device__ int ;
;
// static in-class field initializer. NVCC does not allow it, but
// clang generates static initializer for this, so we'll accept it.
// We still can't use it on __shared__ vars as they don't allow *any*
// initializers.
;
// undefined templated constructor -- not allowed
;
// non-empty templated constructor -- not allowed
;
// Regular base class -- allowed
;
// Incapsulated object of allowed class -- allowed
;
// array of allowed objects -- allowed
;
// Calling empty base class initializer is OK
;
// .. though passing arguments is not allowed.
;
// Virtual base class -- not allowed
;
// Inherited from or incapsulated class with non-empty constructor --
// not allowed
;
;
;
// Inherited from or incapsulated class with non-empty desstructor --
// not allowed
;
;
;