libbmb
Modern implementation of STL
Loading...
Searching...
No Matches
bmb::detail Namespace Reference

Classes

class  BaseVectorIter
 contiguous iterator for Vector. Trivial iterator-wrapper for pointer to array(aka T*) More...
 
struct  invoke_result_impl
 
struct  invoke_result_impl< decltype(void(invoke< F, Args... >())), F, Args... >
 
struct  IteratorTraitsImpl
 
struct  IteratorTraitsImpl< Iter, void_t< typename Iter::value_type, typename Iter::reference, typename Iter::pointer, typename Iter::difference_type, typename Iter::iterator_category > >
 
class  LListIter
 Forward iterator for linked list. More...
 

Concepts

concept  SameHelper
 

Functions

template<typename T >
true_type test_is_class (int T::*)
 
template<typename >
false_type test_is_class (...)
 
template<typename B >
true_type test_ptr_cast (const B *)
 
template<typename >
false_type test_ptr_cast (const void *)
 
template<typename B , typename D >
auto test_is_base_of (int) -> decltype(test_ptr_cast< B >(static_cast< D * >(nullptr)))
 
template<typename , typename >
auto test_is_base_of (...) -> true_type
 
template<typename F , typename... Args>
auto invoke () -> decltype(declval< F >()(declval< Args >()...))
 
template<typename F , typename... Args>
true_type test_is_invocable (decltype(invoke< F, Args... >(), 0))
 
template<typename... >
false_type test_is_invocable (...)
 

Function Documentation

◆ invoke()

template<typename F , typename... Args>
auto bmb::detail::invoke ( ) -> decltype(declval< F >()(declval< Args >()...))

◆ test_is_base_of() [1/2]

template<typename , typename >
auto bmb::detail::test_is_base_of (   ...) -> true_type

◆ test_is_base_of() [2/2]

template<typename B , typename D >
auto bmb::detail::test_is_base_of ( int  ) -> decltype(test_ptr_cast< B >(static_cast< D * >(nullptr)))

◆ test_is_class() [1/2]

template<typename >
false_type bmb::detail::test_is_class (   ...)

◆ test_is_class() [2/2]

template<typename T >
true_type bmb::detail::test_is_class ( int T::*  )

◆ test_is_invocable() [1/2]

template<typename... >
false_type bmb::detail::test_is_invocable (   ...)

◆ test_is_invocable() [2/2]

template<typename F , typename... Args>
true_type bmb::detail::test_is_invocable ( decltype(invoke< F, Args... >(), 0)  )

◆ test_ptr_cast() [1/2]

template<typename B >
true_type bmb::detail::test_ptr_cast ( const B )

◆ test_ptr_cast() [2/2]

template<typename >
false_type bmb::detail::test_ptr_cast ( const void )