#include <type_traits>
Go to the source code of this file.
Namespaces | |
ApproxMVBB | |
These are some container definitions. | |
ApproxMVBB::ContainerTags | |
ApproxMVBB::ContainerTags::details | |
Typedefs | |
template<typename C > | |
using | ApproxMVBB::ContainerTags::has_bidirectionalIterator = std::is_base_of< std::bidirectional_iterator_tag, IteratorCategoryOf< C > > |
template<typename C > | |
using | ApproxMVBB::ContainerTags::has_randomAccessIterator = std::is_base_of< std::random_access_iterator_tag, IteratorCategoryOf< C > > |
template<typename C > | |
using | ApproxMVBB::ContainerTags::IteratorCategoryOf = typename std::iterator_traits< typename C::iterator >::iterator_category |
Functions | |
template<typename C > | |
constexpr auto | ApproxMVBB::ContainerTags::is_associative (C const &c) -> decltype(details::is_associative_container_impl(&c)) |
constexpr auto | ApproxMVBB::ContainerTags::details::is_associative_container_impl (...) -> std::false_type |
template<typename C , typename = typename C::key_type> | |
constexpr auto | ApproxMVBB::ContainerTags::details::is_associative_container_impl (C const *) -> std::true_type |
template<typename C > | |
constexpr auto | ApproxMVBB::ContainerTags::is_container (C const &c) -> decltype(details::is_container_impl(&c)) |
constexpr auto | ApproxMVBB::ContainerTags::details::is_container_impl (...) -> std::false_type |
template<typename C > | |
constexpr auto | ApproxMVBB::ContainerTags::details::is_container_impl (C const *c) -> decltype(begin(*c), end(*c), std::true_type |