13 #if defined(__MINGW32__) 14 # define FORCE_INLINE inline 15 #elif defined(__GNUC__
) && (__GNUC__
* 100
+ __GNUC_MINOR__
>= 402
) 16 # define FORCE_INLINE __attribute__((always_inline)) inline 17 #elif defined(_MSC_VER) 18 # define FORCE_INLINE __forceinline 20 # define FORCE_INLINE inline 23 namespace epics {
namespace pvData {
35 template<
typename T>
struct decorate_const<
const T> {
typedef const T type; };
44 template<
typename T>
struct strip_const<
const T> {
typedef T type; };
63 template<
typename A,
typename B,
typename R =
void>
69 template<
typename A,
typename B,
class R =
void>
struct same_root {};
70 template<
typename T,
class R>
struct same_root<T,T,R> {
typedef R type; };
71 template<
typename T,
class R>
struct same_root<
const T,T,R> {
typedef R type; };
72 template<
typename T,
class R>
struct same_root<T,
const T,R> {
typedef R type; };
80 template<
typename A,
typename B,
class R =
void>
struct _same_type {};
81 template<
typename T,
class R>
struct _same_type<T,T,R> {
typedef R type; };
85 template<
typename A,
typename B,
class R =
void>
104 template<
typename T,
class R =
void>
struct is_void {};
105 template<
class R>
struct is_void<
void,R> {
typedef R type; };
106 template<
class R>
struct is_void<
const void,R> {
typedef R type; };
109 template<
typename T,
class R =
void>
struct is_not_void {
typedef R type; };
114 template<
typename A,
typename B,
class EnableA =
void,
class EnableB =
void,
class R =
void>
116 template<
typename A,
typename B,
class R>
117 struct _and<A,B,
typename A::
type,
typename B::
type, R> {
typedef R type; };
126 #define SIMPLE_ARG_TYPE(TYPE) template<> struct arg_type<TYPE> { typedef TYPE type; }; 142 #undef SIMPLE_ARG_TYPE
virtual void serialize(ByteBuffer *buffer, SerializableControl *flusher, std::size_t offset, std::size_t count) const =0