Workspace 6.21.5
Static Public Member Functions | Static Public Attributes | List of all members
HasIteratorBeginEnd< T > Struct Template Reference

#include <Workspace/Application/LanguageUtils/classconstraints.h>

Static Public Member Functions

template<typename C >
static auto testBegin (...) -> std::false_type
 
template<typename C , typename Func = typename C::const_iterator (C::*)() const>
static auto testBegin (C *) -> typename std::enable_if_t< std::is_same< decltype(static_cast< Func >(&C::begin)), Func >::value, std::true_type >
 
template<typename C >
static auto testEnd (...) -> std::false_type
 
template<typename C , typename Func = typename C::const_iterator (C::*)() const>
static auto testEnd (C *) -> typename std::enable_if_t< std::is_same< decltype(static_cast< Func >(&C::end)), Func >::value, std::true_type >
 

Static Public Attributes

static constexpr auto value = std::is_same<std::true_type, decltype(testBegin<T>(nullptr))>::value && std::is_same<std::true_type, decltype(testEnd<T>(nullptr))>::value
 

Member Function Documentation

◆ testBegin() [1/2]

static auto testBegin (   ...) -> std::false_type
static

◆ testBegin() [2/2]

static auto testBegin ( C *  ) -> typename std::enable_if_t< std::is_same< decltype(static_cast< Func >(&C::begin)), Func >::value, std::true_type >
static

◆ testEnd() [1/2]

static auto testEnd (   ...) -> std::false_type
static

◆ testEnd() [2/2]

static auto testEnd ( C *  ) -> typename std::enable_if_t< std::is_same< decltype(static_cast< Func >(&C::end)), Func >::value, std::true_type >
static

Member Data Documentation

◆ value

constexpr auto value = std::is_same<std::true_type, decltype(testBegin<T>(nullptr))>::value && std::is_same<std::true_type, decltype(testEnd<T>(nullptr))>::value
staticconstexpr