Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Namespaces | Typedefs | Functions
type_traits.hpp File Reference
#include <type_traits>
#include <utility>
#include <cstdlib>
Include dependency graph for type_traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ext::has_clone< T >
 Type trait to determine existence of clone method. A boolean field namd value is set to true if provided class (possibly cv-qualified and via reference) has clone method. More...
 
struct  ext::supports< F(Ts ...) >
 
struct  ext::index_in< T >
 Specialisation for empty pack, in which case the field is set to false. More...
 
struct  ext::index_in< T, U, Ts ... >
 Specialisation for non-empty pack where the first type in the pack is different from the tested type, in which case the field is set to result of the recursive test on shorter pack. More...
 
struct  ext::index_in< T, T, Ts ... >
 Trait to test whether type T is in a types pack. The trait provides field value set to true if the type T is in pack of types Ts ..., false othervise. More...
 
struct  ext::casional< >
 
struct  ext::casional< T >
 
struct  ext::casional< std::true_type, R, Ts ... >
 
struct  ext::casional< std::false_type, R, Ts ... >
 
struct  ext::strip_reference_wrapper< T >
 
struct  ext::strip_reference_wrapper< std::reference_wrapper< T > >
 

Namespaces

namespace  ext
 

Typedefs

template<typename T , typename ... Ts>
using ext::is_in = std::integral_constant< bool,(std::is_same< T, Ts >::value||...) >
 Trait to test whether type T is in a types pack. The trait provides field value set to true if the type T is in pack of types Ts ..., false othervise. More...
 
template<bool value>
using ext::boolean = typename std::conditional< value, std::true_type, std::false_type >::type
 

Functions

template<class F , class ... Ts, typename = decltype ( std::declval < F > ( ) ( std::declval < Ts > ( ) ... ) )>
std::true_type ext::supports_test (const F &, const Ts &...)
 Positive supports test implementation. The test is designed to detect call availability on callable F with parameters Ts ... More...
 
std::false_type ext::supports_test (...)
 Negative supports test implementation. The test is designed to be callback when the positive test failed. More...