SigUtil  0.95
Utility modules for modern C++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
container_helper.hpp File Reference

Go to the source code of this file.

Classes

struct  sig::impl::forward_element< C, >
 

Namespaces

 sig
 
 sig::impl
 

Functions

template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if< std::is_same< C, RC >::value >::type *& = enabler, typename std::enable_if<!std::is_same< typename RC::iterator, typename RC::const_iterator >::value >::type *& = enabler>
auto sig::impl::begin (C &&c) -> std::move_iterator< typename RC::iterator >
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if<(!std::is_same< C, RC >::value)||(std::is_same< typename RC::iterator, typename RC::const_iterator >::value)>::type *& = enabler>
auto sig::impl::begin (C &&c) -> decltype(std::begin(c))
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if< std::is_same< C, RC >::value >::type *& = enabler, typename std::enable_if<!std::is_same< typename RC::iterator, typename RC::const_iterator >::value >::type *& = enabler>
auto sig::impl::end (C &&c) -> std::move_iterator< typename RC::iterator >
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if<(!std::is_same< C, RC >::value)||(std::is_same< typename RC::iterator, typename RC::const_iterator >::value)>::type *& = enabler>
auto sig::impl::end (C &&c) -> decltype(std::end(c))
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if< std::is_same< C, RC >::value >::type *& = enabler, typename std::enable_if<!std::is_same< typename RC::reverse_iterator, typename RC::const_reverse_iterator >::value >::type *& = enabler>
auto sig::impl::rbegin (C &&c) -> std::move_iterator< typename RC::reverse_iterator >
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if<(!std::is_same< C, RC >::value)||(std::is_same< typename RC::reverse_iterator, typename RC::const_reverse_iterator >::value)>::type *& = enabler>
auto sig::impl::rbegin (C &&c) -> decltype(std::rbegin(c))
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if< std::is_same< C, RC >::value >::type *& = enabler, typename std::enable_if<!std::is_same< typename RC::reverse_iterator, typename RC::const_reverse_iterator >::value >::type *& = enabler>
auto sig::impl::rend (C &&c) -> std::move_iterator< typename RC::reverse_iterator >
 
template<class C , class RC = typename impl::remove_const_reference<C>::type, typename std::enable_if<(!std::is_same< C, RC >::value)||(std::is_same< typename RC::reverse_iterator, typename RC::const_reverse_iterator >::value)>::type *& = enabler>
auto sig::impl::rend (C &&c) -> decltype(std::rend(c))
 
template<class It >
void sig::impl::increment_iterator (It &&iter)
 
template<class It , class... Its>
void sig::impl::increment_iterator (It &&iter, Its &&...iterators)
 
template<class It >
auto sig::impl::dereference_iterator (It &&iter) -> decltype(*std::forward< It >(iter))
 
template<class C , class F , class... Its>
void sig::iterative_make (uint loop, C &dest, F &&func, Its...iterators)
 
template<class T , class F1 , class F2 , class... Its>
void sig::iterative_fold (uint loop, T &dest, F1 &&zip, F2 &&fold, Its...iterators)
 
template<class F , class... Its>
void sig::iterative_assign (uint loop, F &&func, Its...iterators)
 
template<class F , class... Its>
void sig::iterative_assign (uint loop, int init, F &&func, Its...iterators)
 
template<class C >
void sig::erase (C &container, typename impl::sequence_container_traits< C >::value_type const &t)
 
template<class C >
void sig::erase (C &container, typename impl::associative_container_traits< C >::value_type const &t)
 
template<class C >
void sig::erase (C &container, typename impl::hash_container_traits< C >::value_type const &t)
 
template<class C , class F , typename std::enable_if< impl::sequence_container_traits< C >::exist >::type *& = enabler>
void sig::erase_if (C &container, F const &remove_pred)
 
template<class RC , class C >
auto sig::copy (C &&src) -> RC
 別の種類のコンテナに要素をコピーする More...
 

Variables

void * sig::enabler