Main MRPT website > C++ reference
MRPT logo
Classes | Namespaces | Functions

metaprogramming.h File Reference

#include <mrpt/utils/CSerializable.h>
Include dependency graph for metaprogramming.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mrpt::utils::metaprogramming::ObjectDelete
 An object for deleting pointers (intended for STL algorithms) More...
struct  mrpt::utils::metaprogramming::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  mrpt::utils::metaprogramming::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  mrpt::utils::metaprogramming::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  mrpt::utils::metaprogramming::ObjectConvert< TARGET_TYPE >
 An object for transforming between types/classes, intended for being used in STL algorithms. More...
struct  mrpt::utils::metaprogramming::ObjectMakeUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
struct  mrpt::utils::metaprogramming::ObjectPairMakeUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
struct  mrpt::utils::metaprogramming::ObjectClearUnique
 An object for making smart pointers unique (ie, making copies if necessary), intended for being used in STL algorithms. More...
struct  mrpt::utils::metaprogramming::ObjectReadFromStream
 An object for reading objects from a stream, intended for being used in STL algorithms. More...
struct  mrpt::utils::metaprogramming::ObjectWriteToStream
 An object for writing objects to a stream, intended for being used in STL algorithms. More...
class  mrpt::utils::metaprogramming::MemoryBypasserIterator< T, U >
 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  mrpt::utils::metaprogramming::BinaryMemberFunctionWrapper< T, U1, U2, V >
 This template encapsulates a binary member function and a single object into a function expecting the two parameters of the member function. More...
class  mrpt::utils::metaprogramming::UnaryMemberFunctionWrapper< T, U, V >
 This template encapsulates an unary member function and a single object into a function expecting the parameter of the member function. More...
class  mrpt::utils::metaprogramming::MemberFunctionWrapper< T, V >
 This template encapsulates a member function without arguments and a single object into a function. More...
class  mrpt::utils::metaprogramming::NonConstBind1st< Op >
 Equivalent of std::bind1st for functions with non-const arguments. More...
class  mrpt::utils::metaprogramming::NonConstBind2nd< Op >
 Equivalent of std::bind2nd for functions with non-const arguments. More...

Namespaces

namespace  mrpt
 

This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.


namespace  mrpt::utils
 

Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.


namespace  mrpt::utils::metaprogramming
 

A set of utility objects for metaprogramming with STL algorithms.


Functions

template<typename T >
void mrpt::utils::metaprogramming::DeleteContainer (T &container)
 A function which deletes a container of pointers.
template<typename it_src , typename it_dst >
void mrpt::utils::metaprogramming::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.
template<typename src_container , typename dst_container >
void mrpt::utils::metaprogramming::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.
template<typename U , typename T >
MemoryBypasserIterator< T, U > mrpt::utils::metaprogramming::bypassPointer (const T &baseIterator)
 Sintactic sugar for MemoryBypasserIterator.
template<typename T , typename U1 , typename U2 , typename V >
BinaryMemberFunctionWrapper< T,
U1, U2, V > 
mrpt::utils::metaprogramming::wrapMember (V &obj, T(V::*fun)(U1, U2))
 This function creates a function from an object and a member function.
template<typename T , typename U , typename V >
UnaryMemberFunctionWrapper< T,
U, V > 
mrpt::utils::metaprogramming::wrapMember (V &obj, T(V::*fun)(U))
template<typename T , typename V >
MemberFunctionWrapper< T, V > mrpt::utils::metaprogramming::wrapMember (V &obj, T(V::*fun)(void))
template<typename Op >
NonConstBind1st< Op > mrpt::utils::metaprogramming::nonConstBind1st (Op &o, typename Op::first_argument_type &t)
 Use this function instead of directly calling NonConstBind1st.
template<typename Op >
NonConstBind2nd< Op > mrpt::utils::metaprogramming::nonConstBind2nd (Op &o, typename Op::second_argument_type &t)
 Do not directly use the NonConstBind2nd class directly.



Page generated by Doxygen 1.7.2 for MRPT 0.9.4 SVN: at Mon Jan 10 22:46:17 UTC 2011