SigUtil  0.95
Utility modules for modern C++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sig::impl Namespace Reference

Classes

struct  associative_container_traits
 associative_container_traits More...
 
struct  associative_container_traits< C< K, T, O< K >, A > >
 
struct  associative_container_traits< C< T, O< T >, A > >
 
struct  container_traits
 
struct  container_traits< sig::array< T, N > >
 
struct  container_traits< std::array< T, N > >
 
struct  container_traits< std::deque< Args...> >
 
struct  container_traits< std::list< Args...> >
 
struct  container_traits< std::map< K, T, Args...> >
 
struct  container_traits< std::multimap< K, T, Args...> >
 
struct  container_traits< std::multiset< Args...> >
 
struct  container_traits< std::set< Args...> >
 
struct  container_traits< std::unordered_map< K, T, Args...> >
 
struct  container_traits< std::unordered_multimap< K, T, Args...> >
 
struct  container_traits< std::unordered_multiset< Args...> >
 
struct  container_traits< std::unordered_set< Args...> >
 
struct  container_traits< std::vector< Args...> >
 
struct  DistributionTag
 
struct  forward_element
 
struct  FStreamSelector
 
struct  FStreamSelector< std::wstring >
 
struct  FStreamSelector< wchar_t const * >
 
struct  has_iterator
 
struct  hash_container_traits
 hash_container_traits More...
 
struct  hash_container_traits< C< K, T, H< K >, O< K >, A > >
 
struct  hash_container_traits< C< T, H< T >, O< T >, A > >
 
struct  identity
 
struct  is_const
 
struct  is_string
 
struct  NumericVectorTag
 
struct  plus_t
 
struct  remove_const_reference
 
struct  SameIf
 
struct  sequence_container_traits
 sequence_container_traits More...
 
struct  sequence_container_traits< C< T, A > >
 
struct  space
 
struct  space< std::string >
 
struct  space< std::wstring >
 
struct  SStreamSelector
 
struct  SStreamSelector< std::wstring >
 
struct  SStreamSelector< wchar_t const * >
 
struct  static_container_traits
 static_container_traits More...
 
struct  static_container_traits< C< T, N > >
 
struct  Str2NumSelector
 
struct  Str2NumSelector< double >
 
struct  Str2NumSelector< float >
 
struct  Str2NumSelector< int >
 
struct  Str2NumSelector< long >
 
struct  Str2NumSelector< long long >
 
struct  Str2NumSelector< unsigned int >
 
struct  Str2NumSelector< unsigned long >
 
struct  Str2NumSelector< unsigned long long >
 
struct  Str2RegexSelector
 
struct  Str2RegexSelector< std::string >
 
struct  Str2RegexSelector< std::wstring >
 
struct  StringId
 
struct  StringId< char * >
 
struct  StringId< char const * >
 
struct  StringId< std::string >
 
struct  StringId< std::wstring >
 
struct  StringId< wchar_t * >
 
struct  StringId< wchar_t const * >
 

Typedefs

template<class T >
using IfsSelector = typename SameIf< T, std::string, std::ifstream, typename SameIf< T, std::wstring, std::wifstream, std::basic_ifstream< T > >::type >::type
 
template<class... Args>
using eval_result_type = decltype(eval(std::declval< Args >()...))
 
template<class T >
using string_t = typename StringId< typename remove_const_reference< typename std::decay< T >::type >::type >::type
 

Functions

template<class T >
double mahalanobis_impl (matrix_u< T > const &cov, vector_u< T > const &v)
 
template<class R , class C1 , class C2 >
auto merge_impl (C1 &&list1, C2 &&list2) -> R
 
template<class CT , uint I = 0, class CTR = typename impl::remove_const_reference<CT>::type, typename std::enable_if< I+1==std::tuple_size< typename impl::container_traits< CTR >::value_type >::value, void >::type *& = enabler>
auto unzipImpl_ (CT &&c_tuple)
 
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 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 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 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 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 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 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 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 rend (C &&c) -> decltype(std::rend(c))
 
template<class It >
void increment_iterator (It &&iter)
 
template<class It , class... Its>
void increment_iterator (It &&iter, Its &&...iterators)
 
template<class It >
auto dereference_iterator (It &&iter) -> decltype(*std::forward< It >(iter))
 
template<class F , class... Args, class = typename std::enable_if<!std::is_member_function_pointer<F>::value>::type, class = typename std::enable_if<!std::is_member_object_pointer<F>::value>::type>
auto eval (F &&f, Args &&...args) -> decltype(f(std::forward< Args >(args)...))
 
template<class R , class C , class... Args>
auto eval (R(C::*f)() const, const C &c, Args &&...args) -> R
 for const function of const object More...
 
template<class R , class C , class... Args>
auto eval (R(C::*f)() const, C &c, Args &&...args) -> R
 for const function of object More...
 
template<class R , class C >
auto eval (R(C::*m), const C &c) -> const R &
 for member variable More...
 
template<class R , class C >
auto eval (R(C::*m), C &c) -> R &
 for const member variable More...
 
template<class C >
void shuffle_impl (uint loop, C const &seq)
 
template<class C , class It , class... Its>
void shuffle_impl (uint loop, C const &seq, It iter, Its...iters)
 
template<class It , class S , class OSS >
auto cat_impl (It begin, It end, S const &delimiter, OSS &osstream, std::locale osstream_locale=std::locale("")) -> decltype(osstream.str())
 

Typedef Documentation

template<class... Args>
using sig::impl::eval_result_type = typedef decltype(eval(std::declval<Args>()...))

Definition at line 78 of file eval.hpp.

template<class T >
using sig::impl::IfsSelector = typedef typename SameIf< T, std::string, std::ifstream, typename SameIf< T, std::wstring, std::wifstream, std::basic_ifstream<T> >::type >::type

Definition at line 34 of file load.hpp.

template<class T >
using sig::impl::string_t = typedef typename StringId< typename remove_const_reference< typename std::decay<T>::type >::type >::type

Definition at line 118 of file type_convert.hpp.

Function Documentation

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>

Definition at line 28 of file container_helper.hpp.

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))

Definition at line 37 of file container_helper.hpp.

template<class It , class S , class OSS >
auto sig::impl::cat_impl ( It  begin,
It  end,
S const &  delimiter,
OSS &  osstream,
std::locale  osstream_locale = std::locale("") 
) -> decltype(osstream.str())

Definition at line 109 of file manipulate.hpp.

template<class It >
auto sig::impl::dereference_iterator ( It &&  iter) -> decltype(*std::forward<It>(iter))

Definition at line 163 of file container_helper.hpp.

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>

Definition at line 47 of file container_helper.hpp.

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))

Definition at line 56 of file container_helper.hpp.

template<class F , class... Args, class = typename std::enable_if<!std::is_member_function_pointer<F>::value>::type, class = typename std::enable_if<!std::is_member_object_pointer<F>::value>::type>
auto sig::impl::eval ( F &&  f,
Args &&...  args 
) -> decltype(f(std::forward<Args>(args)...))

Definition at line 37 of file eval.hpp.

template<class R , class C , class... Args>
auto sig::impl::eval ( R(C::*)() const  f,
const C &  c,
Args &&...  args 
) -> R

for const function of const object

Definition at line 44 of file eval.hpp.

template<class R , class C , class... Args>
auto sig::impl::eval ( R(C::*)() const  f,
C &  c,
Args &&...  args 
) -> R

for const function of object

for function of object

Definition at line 51 of file eval.hpp.

template<class R , class C >
auto sig::impl::eval ( RC::*  m,
const C &  c 
) -> const R&

for member variable

Definition at line 65 of file eval.hpp.

template<class R , class C >
auto sig::impl::eval ( RC::*  m,
C &  c 
) -> R&

for const member variable

Definition at line 72 of file eval.hpp.

template<class It >
void sig::impl::increment_iterator ( It &&  iter)

Definition at line 118 of file container_helper.hpp.

template<class It , class... Its>
void sig::impl::increment_iterator ( It &&  iter,
Its &&...  iterators 
)

Definition at line 123 of file container_helper.hpp.

template<class T >
double sig::impl::mahalanobis_impl ( matrix_u< T > const &  cov,
vector_u< T > const &  v 
)

Definition at line 20 of file mahalanobis_distance.hpp.

template<class R , class C1 , class C2 >
auto sig::impl::merge_impl ( C1 &&  list1,
C2 &&  list2 
) -> R

Definition at line 108 of file list_deal.hpp.

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>

Definition at line 81 of file container_helper.hpp.

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))

Definition at line 90 of file container_helper.hpp.

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>

Definition at line 101 of file container_helper.hpp.

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))

Definition at line 110 of file container_helper.hpp.

template<class C >
void sig::impl::shuffle_impl ( uint  loop,
C const &  seq 
)

Definition at line 41 of file shuffle.hpp.

template<class C , class It , class... Its>
void sig::impl::shuffle_impl ( uint  loop,
C const &  seq,
It  iter,
Its...  iters 
)

Definition at line 44 of file shuffle.hpp.

template<class CT , uint I = 0, class CTR = typename impl::remove_const_reference<CT>::type, typename std::enable_if< I+1==std::tuple_size< typename impl::container_traits< CTR >::value_type >::value, void >::type *& = enabler>
auto sig::impl::unzipImpl_ ( CT &&  c_tuple)

Definition at line 103 of file zip.hpp.