|
struct | Arg |
| parameter storage for type T within a parameter pack More...
|
|
struct | CanConvertTo |
|
struct | ConstRefWrap |
| signifies the parameter should be passed by const reference More...
|
|
struct | ContainsTag |
| template meta-function contains a static boolean variable 'result' which is true if Tag is in the list of kwargs and false if not More...
|
|
struct | ContainsTag< Tag > |
| specialization for when Tag is not in the type list More...
|
|
struct | ContainsTag< Tag, Arg< Tag, T >, Rest...> |
| specialization for when the Arg<Tag,T> type is found More...
|
|
struct | ContainsTag< Tag, First, Rest...> |
| specialization for recursion More...
|
|
struct | GetImpl |
| provides static member Get() with implementations depending on whether or not Tag is in Args... More...
|
|
struct | GetImpl< Tag, false, Default, Args...> |
| specialization for when Tag is not in Args..., returns the default value More...
|
|
struct | GetImpl< Tag, true, Default, Args...> |
| specialization for when Tag is in Args... returns the value corresponding to Tag More...
|
|
class | has_member |
| Template metafunction, ::result evaluates to true if Type has a function call operator member. More...
|
|
struct | is_call_possible |
|
struct | Key |
| assignment operator sentinal used as a key for key-values pairs in the kwargs parameter pack More...
|
|
struct | ParamPack |
| storage for kwargs parameter pack More...
|
|
struct | ParamPack< Head, Tail...> |
| specialization for recursion, provides storage for the current type in the type list, then recursively derives from the remaining types in the type list More...
|
|
struct | ParamPack< Tail > |
| specialization for base case, provides storage for the last type in the type list More...
|
|
struct | RefWrap |
| signifies that the parameter should be passed by reference More...
|
|
class | Tag |
| constexpr string, used to implement tagging with strings More...
|
|
struct | TypeOfTagDefault |
| template meta function provides a member typedef Result which evaluates to T if Arg<Tag,T> is in Args... or Default if it is not More...
|
|
struct | TypeOfTagDefault< Tag, Default > |
| specialization for when Arg<Tag,T> is not in the type list More...
|
|
struct | TypeOfTagDefault< Tag, Default, Arg< Tag, T >, Tail...> |
| specialization for when Arg<Tag,T> is found More...
|
|
struct | TypeOfTagDefault< Tag, Default, Head, Tail...> |
| specialization for recursion More...
|
|
|
template<typename T > |
const ConstRefWrap< T > | ConstRef (const T &v) |
| forces an argument to be passed by const reference More...
|
|
constexpr bool | ContainsTagFn (uint64_t tag) |
| Function version of ContainsTag. More...
|
|
template<uint64_t Tag, typename T , typename... Rest> |
constexpr bool | ContainsTagFn (uint64_t tag, Arg< Tag, T > first, Rest...rest) |
|
template<uint64_t Tag, typename Default , typename... Args> |
TypeOfTagDefault< Tag, Default,
Args...>::Result | Get (ParamPack< Args...> &pack, Default d) |
| given a parameter pack, retrieves and return sthe parameter tagged with tag, or else returns a default value if tag is not in Args... More...
|
|
template<uint64_t Tag, typename Default , typename... Args> |
TypeOfTagDefault< Tag, Default,
Args...>::Result | Get (ParamPack< Args...> &pack, const Key< Tag > &key, Default d) |
| given a parameter pack, retrieves and return sthe parameter tagged with tag, or else returns a default value if tag is not in Args... More...
|
|
template<uint32_t N> |
constexpr uint64_t | Hash (const char(&string)[N]) |
| returns a 64bit hash of string More...
|
|
uint64_t | HashString (const std::string &str, int i, uint64_t hash) |
| Return an unsigned 64bit hash of string . More...
|
|
uint64_t | HashString (const std::string &str) |
|
template<typename T > |
RefWrap< T > | Ref (T &v) |
| forces an argument to be passed by reference More...
|
|
template<typename T , typename ReturnType > |
ReturnType | SafeReturn (T query, ReturnType default_value) |
| SFINAE to safely iterate over params in a parampack since we cannot use the ?: operator on any old pairs of types. More...
|
|
classes and templates used by kwargs library
template<uint64_t Tag, typename Default , typename... Args>
TypeOfTagDefault<Tag,Default,Args...>::Result kw::Get |
( |
ParamPack< Args...> & |
pack, |
|
|
Default |
d |
|
) |
| |
|
inline |
given a parameter pack, retrieves and return sthe parameter tagged with tag, or else returns a default value if tag is not in Args...
Definition at line 84 of file kwargs.h.
template<uint64_t Tag, typename Default , typename... Args>
TypeOfTagDefault<Tag,Default,Args...>::Result kw::Get |
( |
ParamPack< Args...> & |
pack, |
|
|
const Key< Tag > & |
key, |
|
|
Default |
d |
|
) |
| |
|
inline |
given a parameter pack, retrieves and return sthe parameter tagged with tag, or else returns a default value if tag is not in Args...
Definition at line 93 of file kwargs.h.