48#ifndef GUM_THREAD_DATA_H
49#define GUM_THREAD_DATA_H
74 template <
typename T_DATA >
79 using data_type = std::conditional< std::is_scalar< T_DATA >::value, T_DATA, T_DATA& >;
117 data = std::move(from.data);
145 typename std::conditional< std::is_pointer< T_DATA >::value,
147 typename std::add_pointer< T_DATA >::type >::type;
149 template <
typename X = T_DATA >
154 template <
typename X = T_DATA >
gum is the global namespace for all aGrUM entities
data_type operator*()
easy accessor
ThreadData(const T_DATA &theData)
default constructor
typename std::conditional< std::is_pointer< T_DATA >::value, T_DATA, typename std::add_pointer< T_DATA >::type >::type data_pointer
the data we wish to store without cacheline parallel problem
ThreadData(ThreadData< T_DATA > &&from)
move constructor
bool operator==(const T_DATA &from)
equality operator
bool operator==(const ThreadData< T_DATA > &from)
equality operator
std::conditional< std::is_scalar< T_DATA >::value, T_DATA, T_DATA & > data_type
the return types of accessors: T_DATA if scalar, else T_DATA&
bool operator!=(const T_DATA &from)
inequality operator
std::enable_if_t< std::is_pointer< X >::value, data_pointer > operator->()
the data we wish to store without cacheline parallel problem
ThreadData(T_DATA &&theData)
default constructor
ThreadData< T_DATA > & operator=(const ThreadData< T_DATA > &from)
copy operator
T_DATA data
the data we wish to store without cacheline parallel problem
ThreadData(const ThreadData< T_DATA > &from)
copy constructor
bool operator!=(const ThreadData< T_DATA > &from)
inequality operator
ThreadData< T_DATA > & operator=(ThreadData< T_DATA > &&from)
move operator
std::enable_if_t< !std::is_pointer< X >::value, data_pointer > operator->()
the data we wish to store without cacheline parallel problem