10 #ifndef STK_MESH_DATA_TRAITS_HPP 11 #define STK_MESH_DATA_TRAITS_HPP 20 #include <stk_util/parallel/ParallelComm.hpp> 29 template<
typename T >
const DataTraits & data_traits();
32 template<
typename T >
34 const DataTraits & data_traits(
const T & ) {
return data_traits<T>(); }
39 template<>
const DataTraits & data_traits< void >();
40 template<>
const DataTraits & data_traits< signed char >();
41 template<>
const DataTraits & data_traits< unsigned char >();
42 template<>
const DataTraits & data_traits< signed short >();
43 template<>
const DataTraits & data_traits< unsigned short >();
44 template<>
const DataTraits & data_traits< signed int >();
45 template<>
const DataTraits & data_traits< unsigned int >();
46 template<>
const DataTraits & data_traits< signed long >();
47 template<>
const DataTraits & data_traits< unsigned long >();
48 template<>
const DataTraits & data_traits< float >();
49 template<>
const DataTraits & data_traits< double >();
50 template<>
const DataTraits & data_traits< std::complex<float> >();
51 template<>
const DataTraits & data_traits< std::complex<double> >();
53 template<>
const DataTraits & data_traits< void * >();
54 template<>
const DataTraits & data_traits< signed char * >();
55 template<>
const DataTraits & data_traits< unsigned char * >();
56 template<>
const DataTraits & data_traits< signed short * >();
57 template<>
const DataTraits & data_traits< unsigned short * >();
58 template<>
const DataTraits & data_traits< signed int * >();
59 template<>
const DataTraits & data_traits< unsigned int * >();
60 template<>
const DataTraits & data_traits< signed long * >();
61 template<>
const DataTraits & data_traits< unsigned long * >();
62 template<>
const DataTraits & data_traits< float * >();
63 template<>
const DataTraits & data_traits< double * >();
64 template<>
const DataTraits & data_traits< std::complex<float> * >();
65 template<>
const DataTraits & data_traits< std::complex<double> * >();
73 const std::type_info & type_info ;
80 bool is_floating_point ;
90 std::size_t alignment_of ;
95 std::size_t stride_of ;
98 const DataTraits * remove_pointer ;
110 std::vector< EnumMember > enum_info ;
116 const DataTraits * traits ;
119 std::vector< ClassMember > class_info ;
124 virtual void construct(
void * , std::size_t )
const = 0 ;
125 virtual void destroy(
void * , std::size_t )
const = 0 ;
126 virtual void copy(
void * ,
const void * , std::size_t )
const = 0 ;
127 virtual void pack( CommBuffer & ,
const void * , std::size_t )
const = 0 ;
128 virtual void unpack( CommBuffer & ,
void * , std::size_t )
const = 0 ;
129 virtual void print( std::ostream & ,
const void * , std::size_t )
const = 0 ;
135 virtual void sum(
void * x ,
const void * y , std::size_t n )
const = 0 ;
136 virtual void max(
void * x ,
const void * y , std::size_t n )
const = 0 ;
137 virtual void min(
void * x ,
const void * y , std::size_t n )
const = 0 ;
142 virtual void bit_and(
void * x ,
const void * y, std::size_t n )
const = 0 ;
143 virtual void bit_or(
void * x ,
const void * y, std::size_t n )
const = 0 ;
144 virtual void bit_xor(
void * x ,
const void * y, std::size_t n )
const = 0 ;
152 DataTraits(
const std::type_info & arg_type ,
153 const char *
const arg_name ,
154 const std::size_t arg_size ,
155 const std::size_t arg_align );
158 DataTraits(
const std::type_info & arg_type ,
const DataTraits & );
160 virtual ~DataTraits() {}
163 DataTraits(
const DataTraits & );
164 DataTraits & operator = (
const DataTraits & );
std::ostream & print(std::ostream &os, const std::string &indent, const Bucket &bucket)
Print the parts and entities of this bucket.
OutputIterator copy(InputIterator first, InputIterator last, OutputIterator result)