Program Listing for File detector.hpp
↰ Return to documentation for file (rcppsw/mpl/detail/detector.hpp
)
#pragma once
/*******************************************************************************
* Includes
******************************************************************************/
#include "rcppsw/rcppsw.hpp"
/*******************************************************************************
* Namespaces/Decls
******************************************************************************/
namespace rcppsw::mpl::detail {
/*******************************************************************************
* Trait Detection Templates
******************************************************************************/
template <class TFailType,
class AlwaysVoid,
template <class...>
class TFuncDecltype,
class... Args>
struct detector {
using value = std::false_type;
using type = TFailType;
};
template <class TFailType,
template <class...>
class TFuncDecltype,
class... Args>
struct detector<TFailType,
std::void_t<TFuncDecltype<Args...>>,
TFuncDecltype,
Args...> {
using value = std::true_type;
using type = TFuncDecltype<Args...>;
};
template <class T, std::size_t = sizeof(T)>
std::true_type is_complete_impl(T *);
std::false_type is_complete_impl(...);
} /* namespace rcppsw::mpl::detail */