Main MRPT website > C++ reference for MRPT 1.5.6
Classes | Functions
mrpt::utils::metaprogramming Namespace Reference

Detailed Description

A set of utility objects for metaprogramming with STL algorithms.

Classes

struct  ObjectDelete
 An object for deleting pointers (intended for STL algorithms) More...
 
struct  ObjectClear
 An object for clearing an object (invokes its method "->clear()") given a pointer or smart-pointer, intended for being used in STL algorithms. More...
 
struct  ObjectClear2
 An object for clearing an object (invokes its method ".clear()") given a pointer or smart-pointer, intended for being used in STL algorithms. More...
 
struct  ObjectClearSecond
 An object for clearing an object->second (invokes its method "clear()") given a pointer or smart-pointer, intended for being used in STL algorithms. More...
 
struct  ObjectConvert
 An object for transforming between types/classes, intended for being used in STL algorithms. More...
 
struct  ObjectMakeUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
 
struct  ObjectPairMakeUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
 
struct  ObjectClearUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
 
class  MemoryBypasserIterator
 This class bypasses pointer access in iterators to pointers, thus allowing the use of algorithms that expect an object of class T with containers of T*. More...
 
class  BinaryMemberFunctionWrapper
 This template encapsulates a binary member function and a single object into a function expecting the two parameters of the member function. More...
 
class  UnaryMemberFunctionWrapper
 This template encapsulates an unary member function and a single object into a function expecting the parameter of the member function. More...
 
class  MemberFunctionWrapper
 This template encapsulates a member function without arguments and a single object into a function. More...
 
class  NonConstBind1st
 Equivalent of std::bind1st for functions with non-const arguments. More...
 
class  NonConstBind2nd
 Equivalent of std::bind2nd for functions with non-const arguments. More...
 
struct  ObjectReadFromStream
 An object for reading objects from a stream, intended for being used in STL algorithms. More...
 
struct  ObjectReadFromStreamToPtrs
 
struct  ObjectWriteToStream
 An object for writing objects to a stream, intended for being used in STL algorithms. More...
 

Functions

template<typename T >
void DeleteContainer (T &container)
 A function which deletes a container of pointers. More...
 
template<typename it_src , typename it_dst >
void copy_typecasting (it_src first, it_src last, it_dst target)
 Behaves like std::copy but allows the source and target iterators to be of different types through static typecasting. More...
 
template<typename src_container , typename dst_container >
void copy_container_typecasting (const src_container &src, dst_container &trg)
 Copy all the elements in a container (vector, deque, list) into a different one performing the appropriate typecasting. More...
 
template<typename U , typename T >
MemoryBypasserIterator< T, U > bypassPointer (const T &baseIterator)
 Sintactic sugar for MemoryBypasserIterator. More...
 
template<typename T , typename U1 , typename U2 , typename V >
BinaryMemberFunctionWrapper< T,
U1, U2, V > 
wrapMember (V &obj, T(V::*fun)(U1, U2))
 This function creates a function from an object and a member function. More...
 
template<typename T , typename U , typename V >
UnaryMemberFunctionWrapper< T,
U, V > 
wrapMember (V &obj, T(V::*fun)(U))
 
template<typename T , typename V >
MemberFunctionWrapper< T, V > wrapMember (V &obj, T(V::*fun)(void))
 
template<typename Op >
NonConstBind1st< Op > nonConstBind1st (Op &o, typename Op::first_argument_type &t)
 Use this function instead of directly calling NonConstBind1st. More...
 
template<typename Op >
NonConstBind2nd< Op > nonConstBind2nd (Op &o, typename Op::second_argument_type &t)
 Do not directly use the NonConstBind2nd class directly. More...
 



Page generated by Doxygen 1.8.6 for MRPT 1.5.6 Git: 4c65e84 Tue Apr 24 08:18:17 2018 +0200 at mar abr 24 08:26:17 CEST 2018