MADARA
3.2.3
|
Namespace holding Read-Compute-Write based abstractions for knowledge base access. More...
Typedefs | |
typedef Tracked< bool > | TrackedBool |
typedef Tracked< char > | TrackedChar |
typedef Tracked< double > | TrackedDouble |
typedef Tracked< std::vector< double > > | TrackedDoubleVector |
typedef Tracked< float > | TrackedFloat |
typedef Tracked< int16_t > | TrackedI16 |
typedef Tracked< int32_t > | TrackedI32 |
typedef Tracked< int64_t > | TrackedI64 |
typedef Tracked< int8_t > | TrackedI8 |
typedef Tracked< int > | TrackedInt |
typedef Tracked< std::vector< int64_t > > | TrackedIntVector |
typedef Tracked< long > | TrackedLong |
typedef Tracked< long double > | TrackedLongDouble |
typedef Tracked< long long > | TrackedLongLong |
typedef Tracked< signed char > | TrackedSChar |
typedef Tracked< short > | TrackedShort |
typedef Tracked< std::string > | TrackedString |
typedef Tracked< uint16_t > | TrackedU16 |
typedef Tracked< uint32_t > | TrackedU32 |
typedef Tracked< uint64_t > | TrackedU64 |
typedef Tracked< uint8_t > | TrackedU8 |
typedef Tracked< unsigned char > | TrackedUChar |
typedef Tracked< unsigned int > | TrackedUInt |
typedef Tracked< unsigned long > | TrackedULong |
typedef Tracked< unsigned long long > | TrackedULongLong |
typedef Tracked< unsigned short > | TrackedUShort |
Functions | |
template<typename T > | |
void | clear_dirty (Tracked< T > &t) |
Clears dirty flag of Tracked types. More... | |
template<typename T > | |
void | clear_dirty (std::vector< Tracked< T >> &t, size_t i) |
Clears dirty flag of given index of vector of Tracked types. More... | |
template<typename T > | |
void | clear_dirty (Tracked< std::vector< T >> &t, size_t i) |
Clear dirty flag at index of Tracked vector. More... | |
template<typename T > | |
const T & | get_value (const T &t) |
Fallback definition of get_value; simply passes through the value. More... | |
template<typename T > | |
auto | get_value (const std::vector< T > &t, size_t i) -> decltype(get_value(t[i])) |
General definition of get_value with index. More... | |
template<typename T > | |
auto | get_value (const Tracked< T > &t) -> decltype(get_value(t.get())) |
Get value of Tracked type. More... | |
char | get_value (const Tracked< std::string > &t, size_t i) |
Get value of given index of Tracked string type. More... | |
template<typename T > | |
const T & | get_value (const Tracked< std::vector< T >> &t, size_t i) |
Get value at index of Tracked vector. More... | |
template<typename T > | |
bool | is_all_dirty (const Tracked< std::vector< T >> &t) |
Return global dirty flag of Tracked vector. More... | |
template<typename T > | |
bool | is_dirty (const Tracked< T > &t) |
Returns dirty flag of Tracked types. More... | |
template<typename T > | |
bool | is_dirty (const std::vector< Tracked< T >> &t, size_t i) |
Returns dirty flag of given index of vector of Tracked types. More... | |
template<typename T > | |
bool | is_dirty (const Tracked< std::vector< T >> &t, size_t i) |
Return dirty flag at index of Tracked vector. More... | |
template<typename T > | |
bool | is_size_dirty (const Tracked< std::vector< T >> &t) |
Return size changed dirty flag of Tracked vector. More... | |
MADARA_MAKE_SUPPORT_TEST (is_dirty, p,(is_dirty(*p), clear_dirty(*p))) | |
Trait to test for an is_dirty overload for a given type. More... | |
MADARA_MAKE_SUPPORT_TEST (is_all_dirty, p,(is_all_dirty(*p), clear_dirty(*p))) | |
Trait to test for an is_all_dirty overload for a given type. More... | |
MADARA_MAKE_SUPPORT_TEST (is_size_dirty, p,(is_size_dirty(*p), clear_dirty(*p))) | |
Trait to test for an is_size_dirty overload for a given type. More... | |
MADARA_MAKE_SUPPORT_TEST (indexed_is_dirty, p,(is_dirty(*p, 0), clear_dirty(*p, 0))) | |
Trait to test for an indexed_is_dirty overload for given type. More... | |
MADARA_MAKE_SUPPORT_TEST (get_value, p,(set_value(*p, get_value(*p)))) | |
Trait to test for get_/set_value overloads for given type. More... | |
MADARA_MAKE_SUPPORT_TEST (indexed_get_value, p,(set_value(*p, 0, get_value(*p, 0)))) | |
Trait to test for indexed get_/set_value overloads for given type. More... | |
MADARA_MAKE_SUPPORT_TEST (const_iter, p,(p->cbegin(), p->cend())) | |
Trait to test if type supports const iterator methods. More... | |
MADARA_MAKE_SUPPORT_TEST (size, p,(p->size())) | |
Trait to test if type supports a size method. More... | |
MADARA_MAKE_SUPPORT_TEST (knowledge_cast, p,(knowledge_cast(get_value(*p)), knowledge_cast< typename std::decay< decltype(get_value(*p))>::type >(std::declval< KnowledgeRecord >()))) | |
Trait to test if type supports knowledge_cast (both to and from) More... | |
MADARA_MAKE_SUPPORT_TEST (self_eq, p,(get_value(*p)==get_value(*p), get_value(*p)!=get_value(*p))) | |
Trait to test if type supports equality testing (values of same type) More... | |
template<class T > | |
auto | operator! (const Tracked< T > &lhs) -> decltype(!lhs.get()) |
template<class T , class U > | |
auto | operator!= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()!=rhs.get()) |
template<class T , class U > | |
auto | operator!= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()!=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator!= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)!=rhs.get()) |
template<class T , class U > | |
auto | operator% (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()%rhs.get()) |
template<class T , class U > | |
auto | operator% (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()%std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator% (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)%rhs.get()) |
template<class T , class U > | |
auto | operator%= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()%=rhs.get()) |
template<class T , class U > | |
auto | operator%= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()%=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator%= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs%=rhs.get()) |
template<class T , class U > | |
auto | operator& (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()&rhs.get()) |
template<class T , class U > | |
auto | operator& (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()&std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator& (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)&rhs.get()) |
template<class T , class U > | |
auto | operator&= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()&=rhs.get()) |
template<class T , class U > | |
auto | operator&= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()&=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator&= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs &=rhs.get()) |
template<class T , class U > | |
auto | operator* (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()*rhs.get()) |
template<class T , class U > | |
auto | operator* (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()*std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator* (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)*rhs.get()) |
template<class T , class U > | |
auto | operator*= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()*=rhs.get()) |
template<class T , class U > | |
auto | operator*= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs *=rhs.get()) |
template<class T , class U > | |
auto | operator*= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()*=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator+ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()+rhs.get()) |
template<class T , class U > | |
auto | operator+ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()+std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator+ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)+rhs.get()) |
template<class T > | |
auto | operator+ (const Tracked< T > &lhs) -> decltype(+lhs.get()) |
template<class T > | |
auto | operator++ (Tracked< T > &lhs) -> decltype(++lhs.get_mut()) |
template<class T > | |
auto | operator++ (Tracked< T > &lhs, int) -> decltype(lhs.get_mut()++) |
template<class T , class U > | |
auto | operator+= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()+=rhs.get()) |
template<class T , class U > | |
auto | operator+= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()+=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator+= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs+=rhs.get()) |
template<class T , class U > | |
auto | operator- (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()-rhs.get()) |
template<class T , class U > | |
auto | operator- (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()-std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator- (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)-rhs.get()) |
template<class T > | |
auto | operator- (const Tracked< T > &lhs) -> decltype(-lhs.get()) |
template<class T > | |
auto | operator-- (Tracked< T > &lhs) -> decltype(--lhs.get_mut()) |
template<class T > | |
auto | operator-- (Tracked< T > &lhs, int) -> decltype(lhs.get_mut()--) |
template<class T , class U > | |
auto | operator-= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()-=rhs.get()) |
template<class T , class U > | |
auto | operator-= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()-=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator-= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs-=rhs.get()) |
template<class T , class U > | |
auto | operator/ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()/rhs.get()) |
template<class T , class U > | |
auto | operator/ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()/std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator/ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)/rhs.get()) |
template<class T , class U > | |
auto | operator/= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()/=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator/= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()/=rhs.get()) |
template<class T , class U > | |
auto | operator/= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs/=rhs.get()) |
template<class T , class U > | |
auto | operator< (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()< rhs.get()) |
template<class T , class U > | |
auto | operator< (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()< std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator< (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)< rhs.get()) |
template<class T , class U > | |
auto | operator<< (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()<< std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator<< (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()<< rhs.get()) |
template<class T , class U > | |
auto | operator<< (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)<< rhs.get()) |
template<class T , class U > | |
auto | operator<<= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()<<=rhs.get()) |
template<class T , class U > | |
auto | operator<<= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()<<=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator<<= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs<<=rhs.get()) |
template<class T , class U > | |
auto | operator<= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()<=rhs.get()) |
template<class T , class U > | |
auto | operator<= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()<=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator<= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)<=rhs.get()) |
template<class T , class U > | |
auto | operator== (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()==std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator== (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()==rhs.get()) |
template<class T , class U > | |
auto | operator== (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)==rhs.get()) |
template<class T , class U > | |
auto | operator> (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator> (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >rhs.get()) |
template<class T , class U > | |
auto | operator> (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >rhs.get()) |
template<class T , class U > | |
auto | operator>= (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >=rhs.get()) |
template<class T , class U > | |
auto | operator>= (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >=rhs.get()) |
template<class T , class U > | |
auto | operator>= (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator>> (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get() >>std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator>> (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs) >>rhs.get()) |
template<class T , class U > | |
auto | operator>> (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get() >>rhs.get()) |
template<class T , class U > | |
auto | operator>>= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut() >>=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator>>= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs >>=rhs.get()) |
template<class T , class U > | |
auto | operator>>= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut() >>=rhs.get()) |
template<class T , class U > | |
auto | operator^ (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()^rhs.get()) |
template<class T , class U > | |
auto | operator^ (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)^rhs.get()) |
template<class T , class U > | |
auto | operator^ (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()^std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator^= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs^=rhs.get()) |
template<class T , class U > | |
auto | operator^= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()^=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator^= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()^=rhs.get()) |
template<class T , class U > | |
auto | operator| (const Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get()|rhs.get()) |
template<class T , class U > | |
auto | operator| (T &&lhs, const Tracked< U > &rhs) -> decltype(std::forward< T >(lhs)|rhs.get()) |
template<class T , class U > | |
auto | operator| (const Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get()|std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator|= (Tracked< T > &lhs, U &&rhs) -> decltype(lhs.get_mut()|=std::forward< U >(rhs)) |
template<class T , class U > | |
auto | operator|= (Tracked< T > &lhs, const Tracked< U > &rhs) -> decltype(lhs.get_mut()|=rhs.get()) |
template<class T , class U > | |
auto | operator|= (T &lhs, const Tracked< U > &rhs) -> decltype(lhs|=rhs.get()) |
template<class T > | |
auto | operator~ (const Tracked< T > &lhs) -> decltype(~lhs.get()) |
template<typename T > | |
void | set_value (T &t, const T &v) |
Fallback definition of set_value; simply passes through the value. More... | |
template<typename T , typename V > | |
void | set_value (std::vector< T > &t, size_t i, V v) |
General definition of set_value with index. More... | |
template<typename T > | |
void | set_value (Tracked< T > &t, decltype(get_value(t.get())) v) |
Set value of Tracked type. More... | |
void | set_value (Tracked< std::string > &t, size_t i, char v) |
Set value of given index of Tracked string type. More... | |
template<typename T > | |
void | set_value (Tracked< std::vector< T >> &t, size_t i, const T &v) |
Set value at index of Tracked vector. More... | |
template<class T > | |
Tracked< typename std::decay< T >::type > | track (T &&val) |
Create a tracked version of a given object. More... | |
Namespace holding Read-Compute-Write based abstractions for knowledge base access.
For normal use, refer to
See https://sourceforge.net/p/madara/wiki/ReadComputeWrite/ for details.
typedef Tracked<bool> madara::knowledge::rcw::TrackedBool |
typedef Tracked<char> madara::knowledge::rcw::TrackedChar |
typedef Tracked<double> madara::knowledge::rcw::TrackedDouble |
typedef Tracked<std::vector<double> > madara::knowledge::rcw::TrackedDoubleVector |
typedef Tracked<float> madara::knowledge::rcw::TrackedFloat |
typedef Tracked<int16_t> madara::knowledge::rcw::TrackedI16 |
typedef Tracked<int32_t> madara::knowledge::rcw::TrackedI32 |
typedef Tracked<int64_t> madara::knowledge::rcw::TrackedI64 |
typedef Tracked<int8_t> madara::knowledge::rcw::TrackedI8 |
typedef Tracked<int> madara::knowledge::rcw::TrackedInt |
typedef Tracked<std::vector<int64_t> > madara::knowledge::rcw::TrackedIntVector |
typedef Tracked<long> madara::knowledge::rcw::TrackedLong |
typedef Tracked<long double> madara::knowledge::rcw::TrackedLongDouble |
typedef Tracked<long long> madara::knowledge::rcw::TrackedLongLong |
typedef Tracked<signed char> madara::knowledge::rcw::TrackedSChar |
typedef Tracked<short> madara::knowledge::rcw::TrackedShort |
typedef Tracked<std::string> madara::knowledge::rcw::TrackedString |
typedef Tracked<uint16_t> madara::knowledge::rcw::TrackedU16 |
typedef Tracked<uint32_t> madara::knowledge::rcw::TrackedU32 |
typedef Tracked<uint64_t> madara::knowledge::rcw::TrackedU64 |
typedef Tracked<uint8_t> madara::knowledge::rcw::TrackedU8 |
typedef Tracked<unsigned char> madara::knowledge::rcw::TrackedUChar |
typedef Tracked<unsigned int> madara::knowledge::rcw::TrackedUInt |
typedef Tracked<unsigned long> madara::knowledge::rcw::TrackedULong |
typedef Tracked<unsigned long long> madara::knowledge::rcw::TrackedULongLong |
typedef Tracked<unsigned short> madara::knowledge::rcw::TrackedUShort |
void madara::knowledge::rcw::clear_dirty | ( | Tracked< T > & | t | ) |
void madara::knowledge::rcw::clear_dirty | ( | std::vector< Tracked< T >> & | t, |
size_t | i | ||
) |
void madara::knowledge::rcw::clear_dirty | ( | Tracked< std::vector< T >> & | t, |
size_t | i | ||
) |
const T& madara::knowledge::rcw::get_value | ( | const T & | t | ) |
Fallback definition of get_value; simply passes through the value.
Definition at line 34 of file BaseTracker.h.
auto madara::knowledge::rcw::get_value | ( | const std::vector< T > & | t, |
size_t | i | ||
) | -> decltype(get_value(t[i])) |
General definition of get_value with index.
Definition at line 48 of file BaseTracker.h.
auto madara::knowledge::rcw::get_value | ( | const Tracked< T > & | t | ) | -> decltype(get_value(t.get())) |
char madara::knowledge::rcw::get_value | ( | const Tracked< std::string > & | t, |
size_t | i | ||
) |
const T& madara::knowledge::rcw::get_value | ( | const Tracked< std::vector< T >> & | t, |
size_t | i | ||
) |
bool madara::knowledge::rcw::is_all_dirty | ( | const Tracked< std::vector< T >> & | t | ) |
bool madara::knowledge::rcw::is_dirty | ( | const Tracked< T > & | t | ) |
bool madara::knowledge::rcw::is_dirty | ( | const std::vector< Tracked< T >> & | t, |
size_t | i | ||
) |
bool madara::knowledge::rcw::is_dirty | ( | const Tracked< std::vector< T >> & | t, |
size_t | i | ||
) |
bool madara::knowledge::rcw::is_size_dirty | ( | const Tracked< std::vector< T >> & | t | ) |
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | is_dirty | , |
p | , | ||
(is_dirty(*p), clear_dirty(*p)) | |||
) |
Trait to test for an is_dirty overload for a given type.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | is_all_dirty | , |
p | , | ||
(is_all_dirty(*p), clear_dirty(*p)) | |||
) |
Trait to test for an is_all_dirty overload for a given type.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | is_size_dirty | , |
p | , | ||
(is_size_dirty(*p), clear_dirty(*p)) | |||
) |
Trait to test for an is_size_dirty overload for a given type.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | indexed_is_dirty | , |
p | , | ||
(is_dirty(*p, 0), clear_dirty(*p, 0)) | |||
) |
Trait to test for an indexed_is_dirty overload for given type.
Trait to test for get_/set_value overloads for given type.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | indexed_get_value | , |
p | , | ||
(set_value(*p, 0, get_value(*p, 0))) | |||
) |
Trait to test for indexed get_/set_value overloads for given type.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | const_iter | , |
p | , | ||
(p->cbegin(), p->cend()) | |||
) |
Trait to test if type supports const iterator methods.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | size | , |
p | , | ||
(p->size()) | |||
) |
Trait to test if type supports a size method.
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | knowledge_cast | , |
p | , | ||
(knowledge_cast(get_value(*p)), knowledge_cast< typename std::decay< decltype(get_value(*p))>::type >(std::declval< KnowledgeRecord >())) | |||
) |
Trait to test if type supports knowledge_cast (both to and from)
madara::knowledge::rcw::MADARA_MAKE_SUPPORT_TEST | ( | self_eq | , |
p | , | ||
(get_value(*p)==get_value(*p), get_value(*p)!=get_value(*p)) | |||
) |
Trait to test if type supports equality testing (values of same type)
auto madara::knowledge::rcw::operator! | ( | const Tracked< T > & | lhs | ) | -> decltype( ! lhs.get() ) |
auto madara::knowledge::rcw::operator!= | ( | const Tracked< T > & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs.get() != rhs.get() ) |
auto madara::knowledge::rcw::operator!= | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() != std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator!= | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) != rhs.get() ) |
auto madara::knowledge::rcw::operator% | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() % std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator% | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) % rhs.get() ) |
auto madara::knowledge::rcw::operator%= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() %= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator%= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs %= rhs.get() ) |
auto madara::knowledge::rcw::operator& | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() & std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator& | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) & rhs.get() ) |
auto madara::knowledge::rcw::operator&= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() &= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator&= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs &= rhs.get() ) |
auto madara::knowledge::rcw::operator* | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() * std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator* | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) * rhs.get() ) |
auto madara::knowledge::rcw::operator*= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs *= rhs.get() ) |
auto madara::knowledge::rcw::operator*= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() *= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator+ | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() + std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator+ | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) + rhs.get() ) |
auto madara::knowledge::rcw::operator+ | ( | const Tracked< T > & | lhs | ) | -> decltype( + lhs.get() ) |
auto madara::knowledge::rcw::operator++ | ( | Tracked< T > & | lhs | ) | -> decltype( ++ lhs.get_mut() ) |
auto madara::knowledge::rcw::operator++ | ( | Tracked< T > & | lhs, |
int | |||
) | -> decltype( lhs.get_mut() ++ ) |
auto madara::knowledge::rcw::operator+= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() += std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator+= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs += rhs.get() ) |
auto madara::knowledge::rcw::operator- | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() - std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator- | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) - rhs.get() ) |
auto madara::knowledge::rcw::operator- | ( | const Tracked< T > & | lhs | ) | -> decltype( - lhs.get() ) |
auto madara::knowledge::rcw::operator-- | ( | Tracked< T > & | lhs | ) | -> decltype( -- lhs.get_mut() ) |
auto madara::knowledge::rcw::operator-- | ( | Tracked< T > & | lhs, |
int | |||
) | -> decltype( lhs.get_mut() -- ) |
auto madara::knowledge::rcw::operator-= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() -= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator-= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs -= rhs.get() ) |
auto madara::knowledge::rcw::operator/ | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() / std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator/ | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) / rhs.get() ) |
auto madara::knowledge::rcw::operator/= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() /= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator/= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs /= rhs.get() ) |
auto madara::knowledge::rcw::operator< | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() < std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator< | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) < rhs.get() ) |
auto madara::knowledge::rcw::operator<< | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() << std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator<< | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) << rhs.get() ) |
auto madara::knowledge::rcw::operator<<= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() <<= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator<<= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs <<= rhs.get() ) |
auto madara::knowledge::rcw::operator<= | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() <= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator<= | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) <= rhs.get() ) |
auto madara::knowledge::rcw::operator== | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() == std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator== | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) == rhs.get() ) |
auto madara::knowledge::rcw::operator> | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() > std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator> | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) > rhs.get() ) |
auto madara::knowledge::rcw::operator>= | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) >= rhs.get() ) |
auto madara::knowledge::rcw::operator>= | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() >= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator>> | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() >> std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator>> | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) >> rhs.get() ) |
auto madara::knowledge::rcw::operator>>= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() >>= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator>>= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs >>= rhs.get() ) |
auto madara::knowledge::rcw::operator^ | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) ^ rhs.get() ) |
auto madara::knowledge::rcw::operator^ | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() ^ std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator^= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs ^= rhs.get() ) |
auto madara::knowledge::rcw::operator^= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() ^= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator| | ( | T && | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( std::forward<T>(lhs) | rhs.get() ) |
auto madara::knowledge::rcw::operator| | ( | const Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get() | std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator|= | ( | Tracked< T > & | lhs, |
U && | rhs | ||
) | -> decltype( lhs.get_mut() |= std::forward<U>(rhs) ) |
auto madara::knowledge::rcw::operator|= | ( | T & | lhs, |
const Tracked< U > & | rhs | ||
) | -> decltype( lhs |= rhs.get() ) |
auto madara::knowledge::rcw::operator~ | ( | const Tracked< T > & | lhs | ) | -> decltype( ~ lhs.get() ) |
void madara::knowledge::rcw::set_value | ( | T & | t, |
const T & | v | ||
) |
Fallback definition of set_value; simply passes through the value.
Definition at line 41 of file BaseTracker.h.
void madara::knowledge::rcw::set_value | ( | std::vector< T > & | t, |
size_t | i, | ||
V | v | ||
) |
General definition of set_value with index.
Definition at line 56 of file BaseTracker.h.
void madara::knowledge::rcw::set_value | ( | Tracked< std::string > & | t, |
size_t | i, | ||
char | v | ||
) |
void madara::knowledge::rcw::set_value | ( | Tracked< std::vector< T >> & | t, |
size_t | i, | ||
const T & | v | ||
) |