TBCI Numerical high perf. C++ Library  2.8.0
tbci_traits.h
Go to the documentation of this file.
1 
11 #ifndef H_TBCI_TRAITS_H
12 #define H_TBCI_TRAITS_H
13 
14 #include "tbci/basics.h"
15 
17 
43 template <typename T>
44 class tbci_traits NOINST
45 {
46  public:
47  typedef T& refval_type;
48  typedef const T& const_refval_type;
49  typedef T& loop_refval_type;
50  typedef const T& loop_const_refval_type;
51 };
52 
56 #define SPEC_TBCI_TRAITS_ALWAYS_COPY(TYPE) \
57 template <> \
58 class tbci_traits< TYPE > NOINST \
59 { \
60  public: \
61  typedef TYPE refval_type; \
62  typedef TYPE /*const*/ const_refval_type; \
63  typedef TYPE loop_refval_type; \
64  typedef TYPE /*const*/ loop_const_refval_type; \
65 }
66 
71 #define SPEC_TBCI_TRAITS_LOOP_COPY(TYPE) \
72 template <> \
73 class tbci_traits< TYPE > NOINST \
74 { \
75  public: \
76  typedef TYPE& refval_type; \
77  typedef const TYPE& const_refval_type; \
78  typedef TYPE loop_refval_type; \
79  typedef TYPE /*const*/ loop_const_refval_type; \
80 }
81 
82 
93 
105 
107 
108 #ifdef HAVE_LONG_DOUBLE
109 SPEC_TBCI_TRAITS_ALWAYS_COPY(long double);
110 SPEC_TBCI_TRAITS_ALWAYS_COPY(long double*);
111 #endif
112 #ifdef HAVE_LONG_LONG
114 SPEC_TBCI_TRAITS_ALWAYS_COPY(long long*);
115 #endif
116 // do_vv_comp
118 
120 
121 #endif /* H_TBCI_TRAITS_H */
T & refval_type
Definition: tbci_traits.h:47
#define NAMESPACE_TBCI
Definition: basics.h:317
#define SPEC_TBCI_TRAITS_ALWAYS_COPY(TYPE)
Definition: tbci_traits.h:56
T & loop_refval_type
Definition: tbci_traits.h:49
const T & const_refval_type
Definition: tbci_traits.h:48
const T & loop_const_refval_type
Definition: tbci_traits.h:50
#define NAMESPACE_END
Definition: basics.h:323
#define T
Definition: bdmatlib.cc:20