scnlib  0.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
args.h File Reference
#include "parse_context.h"
#include "util.h"
#include <cstring>

Go to the source code of this file.

Classes

class  scn::basic_arg< Context >
 Type-erased scanning argument. More...
 
class  scn::basic_args< Context >
 
struct  scn::scanner< CharT, T, Enable >
 
struct  scn::temporary< T >
 Allows reading an rvalue. More...
 
struct  scn::detail::custom_value
 
struct  scn::detail::monostate
 
struct  scn::detail::parse_ctx_tag< ParseCtx >
 
class  scn::detail::value< Context >
 
struct  scn::detail::init< Context, T, Type >
 
struct  scn::detail::init< Context, T, custom_type >
 
struct  scn::detail::convert_to_int< T, Char, Enable >
 
class  scn::basic_arg< Context >
 Type-erased scanning argument. More...
 
class  scn::basic_arg< Context >::handle
 
struct  scn::detail::get_type< Context, T >
 
class  scn::arg_store< Context, Args >
 
class  scn::basic_args< Context >
 

Namespaces

 scn
 
 scn::detail
 

Macros

#define SCN_MAKE_VALUE(Tag, Type)
 

Enumerations

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

Functions

template<typename T >
temporary< T > scn::temp (T &&val)
 Factory function for temporary. More...
 
constexpr bool scn::detail::is_integral (type t) noexcept
 
constexpr bool scn::detail::is_arithmetic (type t) noexcept
 
template<typename Context , typename ParseCtx , typename T >
error scn::detail::scan_custom_arg (void *arg, Context &ctx, ParseCtx &pctx) noexcept
 
template<typename Context , typename ParseCtx , typename T >
SCN_CONSTEXPR14 Context::arg_type scn::detail::make_arg (T &value) noexcept
 
 scn::detail::SCN_MAKE_VALUE (string_view_type, basic_string_view< typename C::char_type >) template< typename C > const expr init<C
 
char_type scn::detail::make_value (typename C::char_type &val, priority_tag< 1 >) noexcept
 
template<typename C , typename T >
constexpr auto scn::detail::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 scn::detail::make_value (T &val, priority_tag< 0 >) noexcept-> init< C, T, custom_type >
 
template<typename Context , typename Visitor >
SCN_CLANG_POP SCN_CONSTEXPR14 error scn::visit_arg (Visitor &&vis, typename Context::arg_type &arg)
 
template<typename Context >
constexpr size_t scn::detail::get_types ()
 
template<typename Context , typename Arg , typename... Args>
constexpr size_t scn::detail::get_types ()
 
template<bool Packed, typename Context , typename ParseCtx , typename T >
auto scn::detail::make_arg (T &v) -> typename std::enable_if< Packed, value< Context >>::type
 
template<typename Context , typename ParseCtx , typename... Args>
Context::template
arg_store_type< Args...> 
scn::make_args (Args &...args)
 

Macro Definition Documentation

#define SCN_MAKE_VALUE (   Tag,
  Type 
)
Value:
template <typename C> \
constexpr init<C, Type, Tag> make_value(Type& val, \
priority_tag<1>) noexcept \
{ \
return val; \
}
constexpr auto make_value(T &val, priority_tag< 0 >) noexcept-> init< C, T, custom_type >
Definition: args.h:267

Definition at line 213 of file args.h.