scnlib  0.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
scn::detail Namespace Reference

Namespaces

 _wrap
 
 is_std_streamablestd
 
 ranges
 
 small_vector_algos
 

Classes

struct  custom_value
 
struct  monostate
 
struct  parse_ctx_tag
 
class  value
 
struct  init
 
struct  init< Context, T, custom_type >
 
struct  convert_to_int
 
struct  get_type
 
struct  file_handle
 
class  byte_mapped_file
 
class  cfile_iterator
 
struct  cfile_iterator_cache
 
class  caching_cfile_iterator
 
struct  is_caching_range_impl< basic_file< CharT > >
 
struct  is_caching_range_impl< basic_file_view< CharT > >
 
class  range_streambuf
 
struct  test_std_stream
 
struct  is_std_streamable
 
class  truename_falsename_storage
 
struct  default_widen
 
struct  default_widen< char >
 
struct  default_widen< wchar_t >
 
struct  default_narrow
 
struct  default_narrow< char >
 
struct  default_narrow< wchar_t >
 
struct  locale_defaults
 
struct  locale_defaults< char >
 
struct  locale_defaults< wchar_t >
 
class  parse_context_base
 
class  basic_parse_context_base
 
struct  extract_char_type
 
struct  extract_char_type< Iterator, typename std::enable_if< std::is_integral< ranges::iter_value_t< Iterator > >::value >::type >
 
struct  extract_char_type< Iterator, void_t< typename std::enable_if<!std::is_integral< ranges::iter_value_t< Iterator > >::value >::type, typename ranges::iter_value_t< Iterator >::success_type > >
 
struct  is_direct_impl
 
struct  is_contiguous_impl
 
struct  provides_buffer_access_impl
 
struct  is_caching_range_impl
 
struct  is_caching_range
 
class  range_wrapper
 
struct  range_wrapper_for
 
struct  char_scanner
 
struct  buffer_scanner
 
struct  bool_scanner
 
struct  integer_scanner
 
struct  float_scanner
 
struct  string_scanner
 
struct  string_view_scanner
 
struct  error_handler
 
struct  scan_result_for_range
 
struct  ignore_iterator
 
struct  ignore_iterator_n
 
class  small_vector_base
 
struct  basic_stack_storage
 
struct  basic_stack_storage< T, 0 >
 
class  small_vector
 
struct  integer_sequence
 
struct  iseq_if_c_impl
 
struct  iseq_if_c_impl< true, T, E >
 
struct  iseq_if_c_impl< false, T, E >
 
struct  iseq_identity
 
struct  append_integer_sequence
 
struct  append_integer_sequence< integer_sequence< T, I...>, integer_sequence< T, J...> >
 
struct  make_integer_sequence_impl
 
struct  make_integer_sequence_impl_
 
struct  make_void
 
struct  remove_cvref
 
struct  static_const
 
struct  priority_tag
 
struct  priority_tag< 0 >
 
struct  dependent_false
 
struct  nonesuch
 
struct  _test
 
struct  _test< void_t< Trait< Args...> >, Trait, Args...>
 
struct  exists_helper
 
struct  exists_helper< void_t< AliasT< Args...> >, AliasT, Args...>
 
struct  exists
 
struct  _requires
 
struct  get_common_type
 
struct  _copy_cv
 
struct  _copy_cv< const T, U >
 
struct  _copy_cv< volatile T, U >
 
struct  _copy_cv< const volatile T, U >
 
struct  _rref_res
 
struct  _rref_res< T & >
 
struct  simple_common_reference
 
struct  lvalue_simple_common_reference
 
struct  simple_common_reference< T &, U & >
 
struct  rvalue_simple_common_reference
 
struct  simple_common_reference< T &&, U && >
 
struct  mixed_simple_common_reference
 
struct  simple_common_reference< A &, B && >
 
struct  simple_common_reference< A &&, B & >
 
struct  xref
 
struct  xref< A & >
 
struct  xref< A && >
 
struct  xref< const A >
 
struct  xref< volatile A >
 
struct  xref< const volatile A >
 
struct  basic_common_reference
 
struct  get_common_reference
 
struct  get_common_reference<>
 
struct  get_common_reference< T0 >
 
struct  has_simple_common_ref
 
struct  has_basic_common_ref
 
struct  has_cond_res
 
struct  binary_common_ref
 
struct  binary_common_ref< T, U, typename std::enable_if< has_simple_common_ref< T, U >::value >::type >
 
struct  binary_common_ref< T, U, typename std::enable_if< has_basic_common_ref< T, U >::value &&!has_simple_common_ref< T, U >::value >::type >
 
struct  binary_common_ref< T, U, typename std::enable_if< has_cond_res< T, U >::value &&!has_basic_common_ref< T, U >::value &&!has_simple_common_ref< T, U >::value >::type >
 
struct  get_common_reference< T1, T2 >
 
struct  multiple_common_reference
 
struct  multiple_common_reference< void_t< get_common_reference_t< T1, T2 > >, T1, T2, Rest...>
 
struct  get_common_reference< T1, T2, Rest...>
 
struct  _same_decayed
 
struct  binary_common_type
 
struct  binary_common_type< T, U, typename std::enable_if<!_same_decayed< T, U >::value >::type >
 
struct  binary_common_type< T, U, typename std::enable_if< _same_decayed< T, U >::value &&exists< ternary_return_t, T, U >::value >::type >
 
struct  binary_common_type< T, U, typename std::enable_if< _same_decayed< T, U >::value &&!exists< ternary_return_t, T, U >::value &&exists< _cond_res_t, _cref_t< T >, _cref_t< U > >::value >::type >
 
struct  get_common_type<>
 
struct  get_common_type< T >
 
struct  get_common_type< T, U >
 
struct  multiple_common_type
 
struct  multiple_common_type< void_t< get_common_type_t< T1, T2 > >, T1, T2, R...>
 
struct  get_common_type< T1, T2, R...>
 
class  unique_ptr
 
struct  array
 
class  erased_storage
 
struct  default_t
 

Typedefs

template<typename Range >
using range_wrapper_for_t = typename range_wrapper_for< Range >::type
 
template<typename Range , typename E = result<ptrdiff_t>>
using scan_result_for_range_t = typename scan_result_for_range< Range, E >::type
 
template<bool C, typename T , typename E >
using iseq_if_c = typename iseq_if_c_impl< C, T, E >::type
 
template<typename T , T N>
using make_integer_sequence = typename detail::make_integer_sequence_impl< T, N >::type
 
template<std::size_t... I>
using index_sequence = integer_sequence< std::size_t, I...>
 
template<std::size_t N>
using make_index_sequence = make_integer_sequence< std::size_t, N >
 
template<typename... T>
using index_sequence_for = make_integer_sequence< std::size_t, sizeof...(T)>
 
template<typename... Ts>
using void_t = typename make_void< Ts...>::type
 
template<typename T >
using remove_cvref_t = typename remove_cvref< T >::type
 
template<template< class...> class Trait, typename... Args>
using _test_t = typename _test< void, Trait, Args...>::type
 
template<typename R , typename... Args>
using test_requires_t = decltype(test_requires< R, Args...>(std::declval< R & >()))
 
template<bool Expr>
using requires_expr = typename std::enable_if< Expr, int >::type
 
template<typename T , typename U >
using _copy_cv_t = typename _copy_cv< T, U >::type
 
template<typename T >
using _cref_t = typename std::add_lvalue_reference< const typename std::remove_reference< T >::type >::type
 
template<typename T >
using _rref_res_t = typename _rref_res< T >::type
 
template<typename T , typename U >
using _cond_res_t = decltype(std::declval< bool >()?std::declval< T(&)()>()():std::declval< U(&)()>()())
 
template<typename T , typename U >
using lvalue_scr_t = typename lvalue_simple_common_reference< T, U >::type
 
template<typename T , typename U >
using simple_common_reference_t = typename simple_common_reference< T, U >::type
 
template<typename... Ts>
using get_common_reference_t = typename get_common_reference< Ts...>::type
 
template<typename T , typename U >
using basic_common_ref_t = typename basic_common_reference< remove_cvref_t< T >, remove_cvref_t< U >, xref< T >::template type, xref< U >::template type >::type
 
template<typename... Ts>
using get_common_type_t = typename get_common_type< Ts...>::type
 
template<typename T , typename U >
using ternary_return_t = typename std::decay< decltype(false?std::declval< T >():std::declval< U >())>::type
 

Enumerations

enum  type {
  none_type = 0, short_type, int_type, long_type,
  long_long_type, ushort_type, uint_type, ulong_type,
  ulong_long_type, bool_type, char_type, last_integer_type = char_type,
  float_type, double_type, long_double_type, last_numeric_type = long_double_type,
  buffer_type, string_type, string_view_type, custom_type
}
 
enum  : std::ptrdiff_t { packed_arg_bitsize = 5, packed_arg_mask = (1 << packed_arg_bitsize) - 1, max_packed_args = (sizeof(size_t) * 8 - 1) / packed_arg_bitsize }
 
enum  : size_t { is_unpacked_bit = size_t{1} << (sizeof(size_t) * 8 - 1) }
 

Functions

constexpr bool is_integral (type t) noexcept
 
constexpr bool is_arithmetic (type t) noexcept
 
template<typename Context , typename ParseCtx , typename T >
error scan_custom_arg (void *arg, Context &ctx, ParseCtx &pctx) noexcept
 
template<typename Context , typename ParseCtx , typename T >
SCN_CONSTEXPR14 Context::arg_type make_arg (T &value) noexcept
 
 SCN_MAKE_VALUE (string_view_type, basic_string_view< typename C::char_type >) template< typename C > const expr init<C
 
char_type make_value (typename C::char_type &val, priority_tag< 1 >) noexcept
 
template<typename C , typename T >
constexpr auto make_value (T &val, priority_tag< 1 >) noexcept-> typename std::enable_if< std::is_enum< T >::value &&convert_to_int< T, typename C::char_type >::value, init< C, int, int_type >>::type
 
template<typename C , typename T >
constexpr auto make_value (T &val, priority_tag< 0 >) noexcept-> init< C, T, custom_type >
 
template<typename Context >
constexpr size_t get_types ()
 
template<typename Context , typename Arg , typename... Args>
constexpr size_t get_types ()
 
template<bool Packed, typename Context , typename ParseCtx , typename T >
auto make_arg (T &v) -> typename std::enable_if< Packed, value< Context >>::type
 
constexpr bool has_zero (uint64_t v)
 
bool is_space (char ch) noexcept
 
constexpr bool is_space (wchar_t ch) noexcept
 
constexpr bool is_digit (char ch) noexcept
 
constexpr bool is_digit (wchar_t ch) noexcept
 
template<typename Range , typename It >
void write_return (const Range &, It)
 
template<typename Range , typename It >
void write_return (Range &&r, It begin)
 
template<typename CharT >
expected< CharT > wrap_deref (CharT ch)
 
template<typename CharT >
expected< CharT > wrap_deref (expected< CharT > e)
 
template<typename WrappedRange , typename String , typename CharT >
auto getline_impl (WrappedRange &r, String &str, CharT until) -> detail::scan_result_for_range_t< WrappedRange, wrapped_error >
 
template<typename WrappedRange , typename CharT >
auto getline_impl (WrappedRange &r, basic_string_view< CharT > &str, CharT until) -> detail::scan_result_for_range_t< WrappedRange, wrapped_error >
 
template<typename WrappedRange , typename CharT = typename detail::extract_char_type< detail::range_wrapper_for_t< typename WrappedRange::iterator>>::type>
auto ignore_until_impl (WrappedRange &r, CharT until) -> scan_result< WrappedRange, wrapped_error >
 
template<typename WrappedRange , typename CharT = typename detail::extract_char_type< detail::range_wrapper_for_t< typename WrappedRange::iterator>>::type>
auto ignore_until_n_impl (WrappedRange &r, ranges::range_difference_t< WrappedRange > n, CharT until) -> scan_result< WrappedRange, wrapped_error >
 
template<typename Iter >
std::reverse_iterator< Iter > make_reverse_iterator (Iter i)
 
template<typename T >
constexpr T constexpr_max (T val)
 
template<typename T , typename... Ts>
constexpr T constexpr_max (T val, Ts...a)
 
template<typename T , size_t N>
SCN_CONSTEXPR14 void swap (small_vector< T, N > &l, small_vector< T, N > &r) noexcept(noexcept(l.swap(r)))
 
size_t strlen (const char *s) noexcept
 
size_t strlen (const wchar_t *s) noexcept
 
int memcmp (const char *l, const char *r, size_t n) noexcept
 
int memcmp (const wchar_t *l, const wchar_t *r, size_t n) noexcept
 
template<typename Fn , typename... Args, typename std::enable_if< std::is_member_pointer< typename std::decay< Fn >::type >::value >::type * = nullptr, int = 0>
constexpr auto invoke (Fn &&f, Args &&...args) noexcept(noexcept(std::mem_fn(f)(std::forward< Args >(args)...))) -> decltype(std::mem_fn(f)(std::forward< Args >(args)...))
 
template<typename Fn , typename... Args, typename std::enable_if<!std::is_member_pointer< typename std::decay< Fn >::type >::value >::type * = nullptr>
constexpr auto invoke (Fn &&f, Args &&...args) noexcept(noexcept(std::forward< Fn >(f)(std::forward< Args >(args)...))) -> decltype(std::forward< Fn >(f)(std::forward< Args >(args)...))
 
template<class F , class Tuple , std::size_t... I>
constexpr auto apply_impl (F &&f, Tuple &&t, index_sequence< I...>) noexcept(noexcept(detail::invoke(std::forward< F >(f), std::get< I >(std::forward< Tuple >(t))...))) -> decltype(detail::invoke(std::forward< F >(f), std::get< I >(std::forward< Tuple >(t))...))
 
template<class F , class Tuple >
constexpr auto apply (F &&f, Tuple &&t) noexcept(noexcept(detail::apply_impl(std::forward< F >(f), std::forward< Tuple >(t), make_index_sequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >{}))) -> decltype(detail::apply_impl(std::forward< F >(f), std::forward< Tuple >(t), make_index_sequence< std::tuple_size< typename std::remove_reference< Tuple >::type >::value >
 
template<typename... T>
void valid_expr (T &&...)
 
template<typename R , typename... Args, typename = decltype(&R::template _test_requires<Args...>)>
auto test_requires (R &) -> void
 
template<typename T >
constexpr std::decay< T >::type decay_copy (T &&t) noexcept(noexcept(static_cast< typename std::decay< T >::type >(std::forward< T >(t))))
 
template<typename Integral >
SCN_CONSTEXPR14 int _max_digits (int base) noexcept
 
template<typename Integral >
SCN_CONSTEXPR14 int max_digits (int base) noexcept
 
template<typename T >
constexpr std::pair< T, T > div (T l, T r) noexcept
 
template<typename T >
constexpr T * launder (T *p) noexcept
 
template<typename CharT >
CharT ascii_widen (char ch)
 
template<>
constexpr char ascii_widen (char ch)
 
template<>
constexpr wchar_t ascii_widen (char ch)
 
template<typename T >
constexpr T max (T a, T b) noexcept
 
template<typename It >
SCN_CONSTEXPR14 It min_element (It first, It last)
 
template<typename T >
constexpr T min (T a, T b) noexcept
 
template<typename T >
SCN_CONSTEXPR14min (std::initializer_list< T > list) noexcept
 
template<typename CharT >
bool is_base_digit (CharT ch, int base)
 
template<typename T , typename... Args>
SCN_CLANG_PUSH unique_ptr< T > make_unique (Args &&...a)
 

Typedef Documentation

template<typename T , typename U >
using scn::detail::_cond_res_t = typedef decltype(std::declval<bool>() ? std::declval<T (&)()>()() : std::declval<U (&)()>()())

Definition at line 171 of file util.h.

template<typename T , typename U >
using scn::detail::_copy_cv_t = typedef typename _copy_cv<T, U>::type

Definition at line 151 of file util.h.

template<typename T >
using scn::detail::_cref_t = typedef typename std::add_lvalue_reference< const typename std::remove_reference<T>::type>::type

Definition at line 155 of file util.h.

template<typename T >
using scn::detail::_rref_res_t = typedef typename _rref_res<T>::type

Definition at line 166 of file util.h.

template<template< class...> class Trait, typename... Args>
using scn::detail::_test_t = typedef typename _test<void, Trait, Args...>::type

Definition at line 97 of file util.h.

template<typename T , typename U >
using scn::detail::basic_common_ref_t = typedef typename basic_common_reference<remove_cvref_t<T>, remove_cvref_t<U>, xref<T>::template type, xref<U>::template type>::type

Definition at line 297 of file util.h.

template<typename... Ts>
using scn::detail::get_common_reference_t = typedef typename get_common_reference<Ts...>::type

Definition at line 279 of file util.h.

template<typename... Ts>
using scn::detail::get_common_type_t = typedef typename get_common_type<Ts...>::type

Definition at line 355 of file util.h.

template<std::size_t... I>
using scn::detail::index_sequence = typedef integer_sequence<std::size_t, I...>

Definition at line 129 of file tuple_return.h.

template<typename... T>
using scn::detail::index_sequence_for = typedef make_integer_sequence<std::size_t, sizeof...(T)>

Definition at line 138 of file tuple_return.h.

template<bool C, typename T , typename E >
using scn::detail::iseq_if_c = typedef typename iseq_if_c_impl<C, T, E>::type

Definition at line 74 of file tuple_return.h.

template<typename T , typename U >
using scn::detail::lvalue_scr_t = typedef typename lvalue_simple_common_reference<T, U>::type

Definition at line 187 of file util.h.

template<std::size_t N>
using scn::detail::make_index_sequence = typedef make_integer_sequence<std::size_t, N>

Definition at line 133 of file tuple_return.h.

template<typename T , T N>
using scn::detail::make_integer_sequence = typedef typename detail::make_integer_sequence_impl<T, N>::type

Definition at line 125 of file tuple_return.h.

template<typename Range >
using scn::detail::range_wrapper_for_t = typedef typename range_wrapper_for<Range>::type

Definition at line 263 of file range.h.

template<typename T >
using scn::detail::remove_cvref_t = typedef typename remove_cvref<T>::type

Definition at line 54 of file util.h.

template<bool Expr>
using scn::detail::requires_expr = typedef typename std::enable_if<Expr, int>::type

Definition at line 129 of file util.h.

template<typename Range , typename E = result<ptrdiff_t>>
using scn::detail::scan_result_for_range_t = typedef typename scan_result_for_range<Range, E>::type

Definition at line 37 of file scan.h.

template<typename T , typename U >
using scn::detail::simple_common_reference_t = typedef typename simple_common_reference<T, U>::type

Definition at line 223 of file util.h.

template<typename T , typename U >
using scn::detail::ternary_return_t = typedef typename std::decay<decltype( false ? std::declval<T>() : std::declval<U>())>::type

Definition at line 367 of file util.h.

template<typename R , typename... Args>
using scn::detail::test_requires_t = typedef decltype(test_requires<R, Args...>(std::declval<R&>()))

Definition at line 122 of file util.h.

template<typename... Ts>
using scn::detail::void_t = typedef typename make_void<Ts...>::type

Definition at line 42 of file util.h.

Enumeration Type Documentation

anonymous enum : std::ptrdiff_t
Enumerator
packed_arg_bitsize 
packed_arg_mask 
max_packed_args 

Definition at line 273 of file args.h.

anonymous enum : size_t
Enumerator
is_unpacked_bit 

Definition at line 278 of file args.h.

Enumerator
none_type 
short_type 
int_type 
long_type 
long_long_type 
ushort_type 
uint_type 
ulong_type 
ulong_long_type 
bool_type 
char_type 
last_integer_type 
float_type 
double_type 
long_double_type 
last_numeric_type 
buffer_type 
string_type 
string_view_type 
custom_type 

Definition at line 67 of file args.h.

Function Documentation

template<typename Integral >
SCN_CONSTEXPR14 int scn::detail::_max_digits ( int  base)
noexcept

Definition at line 442 of file util.h.

template<class F , class Tuple >
constexpr auto scn::detail::apply ( F &&  f,
Tuple &&  t 
) -> decltype(detail::apply_impl( std::forward<F>(f), std::forward<Tuple>(t), make_index_sequence<std::tuple_size< typename std::remove_reference<Tuple>::type>::value>
noexcept

Definition at line 154 of file tuple_return.h.

template<class F , class Tuple , std::size_t... I>
constexpr auto scn::detail::apply_impl ( F &&  f,
Tuple &&  t,
index_sequence< I...>   
) -> decltype(detail::invoke(std::forward<F>(f), std::get<I>(std::forward<Tuple>(t))...))
noexcept

Definition at line 143 of file tuple_return.h.

template<typename CharT >
CharT scn::detail::ascii_widen ( char  ch)

Definition at line 498 of file util.h.

template<>
constexpr char scn::detail::ascii_widen ( char  ch)

Definition at line 498 of file util.h.

template<>
constexpr wchar_t scn::detail::ascii_widen ( char  ch)

Definition at line 503 of file util.h.

template<typename T >
constexpr T scn::detail::constexpr_max ( val)

Definition at line 278 of file small_vector.h.

template<typename T , typename... Ts>
constexpr T scn::detail::constexpr_max ( val,
Ts...  a 
)

Definition at line 283 of file small_vector.h.

template<typename T >
constexpr std::decay<T>::type scn::detail::decay_copy ( T &&  t)
noexcept

Definition at line 434 of file util.h.

template<typename T >
constexpr std::pair<T, T> scn::detail::div ( l,
r 
)
noexcept

Definition at line 480 of file util.h.

template<typename Context >
constexpr size_t scn::detail::get_types ( )

Definition at line 426 of file args.h.

template<typename Context , typename Arg , typename... Args>
constexpr size_t scn::detail::get_types ( )

Definition at line 431 of file args.h.

template<typename WrappedRange , typename String , typename CharT >
auto scn::detail::getline_impl ( WrappedRange &  r,
String &  str,
CharT  until 
) -> detail::scan_result_for_range_t<WrappedRange, wrapped_error>

Definition at line 342 of file scan.h.

template<typename WrappedRange , typename CharT >
auto scn::detail::getline_impl ( WrappedRange &  r,
basic_string_view< CharT > &  str,
CharT  until 
) -> detail::scan_result_for_range_t<WrappedRange, wrapped_error>

Definition at line 375 of file scan.h.

constexpr bool scn::detail::has_zero ( uint64_t  v)

Definition at line 63 of file locale.h.

template<typename WrappedRange , typename CharT = typename detail::extract_char_type< detail::range_wrapper_for_t< typename WrappedRange::iterator>>::type>
auto scn::detail::ignore_until_impl ( WrappedRange &  r,
CharT  until 
) -> scan_result<WrappedRange, wrapped_error>

Definition at line 520 of file scan.h.

template<typename WrappedRange , typename CharT = typename detail::extract_char_type< detail::range_wrapper_for_t< typename WrappedRange::iterator>>::type>
auto scn::detail::ignore_until_n_impl ( WrappedRange &  r,
ranges::range_difference_t< WrappedRange >  n,
CharT  until 
) -> scan_result<WrappedRange, wrapped_error>

Definition at line 536 of file scan.h.

template<typename Fn , typename... Args, typename std::enable_if< std::is_member_pointer< typename std::decay< Fn >::type >::value >::type * = nullptr, int = 0>
constexpr auto scn::detail::invoke ( Fn &&  f,
Args &&...  args 
) -> decltype(std::mem_fn(f)(std::forward<Args>(args)...))
noexcept

Definition at line 36 of file tuple_return.h.

template<typename Fn , typename... Args, typename std::enable_if<!std::is_member_pointer< typename std::decay< Fn >::type >::value >::type * = nullptr>
constexpr auto scn::detail::invoke ( Fn &&  f,
Args &&...  args 
) -> decltype(std::forward<Fn>(f)(std::forward<Args>(args)...))
noexcept

Definition at line 47 of file tuple_return.h.

constexpr bool scn::detail::is_arithmetic ( type  t)
noexcept

Definition at line 100 of file args.h.

template<typename CharT >
bool scn::detail::is_base_digit ( CharT  ch,
int  base 
)

Definition at line 543 of file util.h.

constexpr bool scn::detail::is_digit ( char  ch)
inlinenoexcept

Definition at line 109 of file locale.h.

constexpr bool scn::detail::is_digit ( wchar_t  ch)
inlinenoexcept

Definition at line 113 of file locale.h.

constexpr bool scn::detail::is_integral ( type  t)
noexcept

Definition at line 96 of file args.h.

bool scn::detail::is_space ( char  ch)
inlinenoexcept

Definition at line 70 of file locale.h.

constexpr bool scn::detail::is_space ( wchar_t  ch)
inlinenoexcept

Definition at line 104 of file locale.h.

template<typename T >
constexpr T* scn::detail::launder ( T *  p)
noexcept

Definition at line 486 of file util.h.

template<typename Context , typename ParseCtx , typename T >
SCN_CONSTEXPR14 Context::arg_type scn::detail::make_arg ( T &  value)
noexcept

Definition at line 438 of file args.h.

template<bool Packed, typename Context , typename ParseCtx , typename T >
auto scn::detail::make_arg ( T &  v) -> typename std::enable_if<Packed, value<Context>>::type
inline

Definition at line 448 of file args.h.

template<typename Iter >
std::reverse_iterator<Iter> scn::detail::make_reverse_iterator ( Iter  i)

Definition at line 33 of file small_vector.h.

template<typename T , typename... Args>
SCN_CLANG_PUSH unique_ptr<T> scn::detail::make_unique ( Args &&...  a)

Definition at line 635 of file util.h.

char_type scn::detail::make_value ( typename C::char_type &  val,
priority_tag< 1 >   
)
noexcept

Definition at line 243 of file args.h.

template<typename C , typename T >
constexpr auto scn::detail::make_value ( T &  val,
priority_tag< 1 >   
) -> typename std::enable_if< std::is_enum<T>::value && convert_to_int<T, typename C::char_type>::value, init<C, int, int_type>>::type
inlinenoexcept

Definition at line 257 of file args.h.

template<typename C , typename T >
constexpr auto scn::detail::make_value ( T &  val,
priority_tag< 0 >   
) -> init<C, T, custom_type>
inlinenoexcept

Definition at line 267 of file args.h.

template<typename T >
constexpr T scn::detail::max ( a,
b 
)
noexcept

Definition at line 509 of file util.h.

template<typename Integral >
SCN_CONSTEXPR14 int scn::detail::max_digits ( int  base)
noexcept

Definition at line 468 of file util.h.

int scn::detail::memcmp ( const char *  l,
const char *  r,
size_t  n 
)
inlinenoexcept

Definition at line 45 of file string_view.h.

int scn::detail::memcmp ( const wchar_t *  l,
const wchar_t *  r,
size_t  n 
)
inlinenoexcept

Definition at line 49 of file string_view.h.

template<typename T >
constexpr T scn::detail::min ( a,
b 
)
noexcept

Definition at line 532 of file util.h.

template<typename T >
SCN_CONSTEXPR14 T scn::detail::min ( std::initializer_list< T >  list)
noexcept

Definition at line 537 of file util.h.

template<typename It >
SCN_CONSTEXPR14 It scn::detail::min_element ( It  first,
It  last 
)

Definition at line 515 of file util.h.

template<typename Context , typename ParseCtx , typename T >
error scn::detail::scan_custom_arg ( void *  arg,
Context &  ctx,
ParseCtx &  pctx 
)
noexcept

Definition at line 113 of file args.h.

scn::detail::SCN_MAKE_VALUE ( string_view_type  ,
basic_string_view< typename C::char_type >   
) const
size_t scn::detail::strlen ( const char *  s)
inlinenoexcept

Definition at line 36 of file string_view.h.

size_t scn::detail::strlen ( const wchar_t *  s)
inlinenoexcept

Definition at line 40 of file string_view.h.

template<typename T , size_t N>
SCN_CONSTEXPR14 void scn::detail::swap ( small_vector< T, N > &  l,
small_vector< T, N > &  r 
)
noexcept

Definition at line 898 of file small_vector.h.

template<typename R , typename... Args, typename = decltype(&R::template _test_requires<Args...>)>
auto scn::detail::test_requires ( R &  ) -> void
template<typename... T>
void scn::detail::valid_expr ( T &&  ...)
template<typename CharT >
expected<CharT> scn::detail::wrap_deref ( CharT  ch)

Definition at line 268 of file range.h.

template<typename CharT >
expected<CharT> scn::detail::wrap_deref ( expected< CharT >  e)

Definition at line 273 of file range.h.

template<typename Range , typename It >
void scn::detail::write_return ( const Range &  ,
It   
)

Definition at line 58 of file range.h.

template<typename Range , typename It >
void scn::detail::write_return ( Range &&  r,
It  begin 
)

Definition at line 62 of file range.h.