9 #ifndef metaprogramming_H    10 #define metaprogramming_H    24                 namespace metaprogramming
    39                                 for_each(container.begin(),container.end(),
ObjectDelete());
    48                                         if (ptr) ptr->clear();
    77                         template <
typename TARGET_TYPE>
    81                                         return TARGET_TYPE(
val);
    99                                         ptr.first.make_unique();
   100                                         ptr.second.make_unique();
   106                         template <
typename T>
   120                         template<
typename it_src, 
typename it_dst>
   123                                 for (it_src i=
first; i!=last ; ++i,++target)
   124                                         *target = static_cast<typename it_dst::value_type>(*i);
   137                         template<
typename src_container, 
typename dst_container>
   140                                 trg.resize( 
src.size() );
   144                                 for ( ; i!=last ; ++i,++target)
   145                                         *target = static_cast<typename dst_container::value_type>(*i);
   165                                         return *(*baseIterator);
   211                                 inline bool operator<(const MemoryBypasserIterator<T,U> &i) 
const       {
   298                                 typename Op::first_argument_type &
val;
   317                                 typename Op::second_argument_type &
val;
 NonConstBind2nd< Op > nonConstBind2nd(Op &o, typename Op::second_argument_type &t)
Do not directly use the NonConstBind2nd class directly. 
 
const Scalar * const_iterator
 
NonConstBind1st< Op > nonConstBind1st(Op &o, typename Op::first_argument_type &t)
Use this function instead of directly calling NonConstBind1st. 
 
GLsizei GLsizei GLuint * obj
 
void DeleteContainer(T &container)
A function which deletes a container of pointers. 
 
A smart pointer to a CObject object. 
 
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. 
 
MemoryBypasserIterator< T, U > bypassPointer(const T &baseIterator)
Sintactic sugar for MemoryBypasserIterator. 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
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 st...
 
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
 
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 approp...