|
cheshirekow
v0.1.0
|
tooling for python-like kwargs in c++ More...
#include <cstdint>Go to the source code of this file.
Classes | |
| struct | kw::Arg< Tag, T > |
| parameter storage for type T within a parameter pack More... | |
| struct | kw::ConstRefWrap< T > |
| signifies the parameter should be passed by const reference More... | |
| struct | kw::ContainsTag< Tag, Args > |
| 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 | kw::ContainsTag< Tag > |
| specialization for when Tag is not in the type list More... | |
| struct | kw::ContainsTag< Tag, Arg< Tag, T >, Rest...> |
| specialization for when the Arg<Tag,T> type is found More... | |
| struct | kw::ContainsTag< Tag, First, Rest...> |
| specialization for recursion More... | |
| struct | kw::GetImpl< Tag, exists, Default, Args > |
| provides static member Get() with implementations depending on whether or not Tag is in Args... More... | |
| struct | kw::GetImpl< Tag, false, Default, Args...> |
| specialization for when Tag is not in Args..., returns the default value More... | |
| struct | kw::GetImpl< Tag, true, Default, Args...> |
| specialization for when Tag is in Args... returns the value corresponding to Tag More... | |
| struct | kw::Key< Tag > |
| assignment operator sentinal used as a key for key-values pairs in the kwargs parameter pack More... | |
| struct | kw::ParamPack< Args > |
| storage for kwargs parameter pack More... | |
| struct | kw::ParamPack< Args > |
| storage for kwargs parameter pack More... | |
| struct | kw::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 | kw::ParamPack< Tail > |
| specialization for base case, provides storage for the last type in the type list More... | |
| struct | kw::RefWrap< T > |
| signifies that the parameter should be passed by reference More... | |
| class | kw::Tag |
| constexpr string, used to implement tagging with strings More... | |
| struct | kw::TypeOfTagDefault< Tag, Default, Args > |
| 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 | kw::TypeOfTagDefault< Tag, Default > |
| specialization for when Arg<Tag,T> is not in the type list More... | |
| struct | kw::TypeOfTagDefault< Tag, Default, Arg< Tag, T >, Tail...> |
| specialization for when Arg<Tag,T> is found More... | |
| struct | kw::TypeOfTagDefault< Tag, Default, Head, Tail...> |
| specialization for recursion More... | |
Namespaces | |
| kw | |
| classes and templates used by kwargs library | |
Macros | |
| #define | KW(key) kw::Key<kw::Hash(#key)>() |
| #define | TAG(key) kw::Hash(#key) |
Functions | |
| template<typename T > | |
| const ConstRefWrap< T > | kw::ConstRef (const T &v) |
| forces an argument to be passed by const reference More... | |
| constexpr bool | kw::ContainsTagFn (uint64_t tag) |
| Function version of ContainsTag. More... | |
| template<uint64_t Tag, typename T , typename... Rest> | |
| constexpr bool | kw::ContainsTagFn (uint64_t tag, Arg< Tag, T > first, Rest...rest) |
| template<uint64_t Tag, typename Default , typename... Args> | |
| TypeOfTagDefault< Tag, Default, Args...>::Result | kw::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 | kw::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 | kw::Hash (const char(&string)[N]) |
returns a 64bit hash of string More... | |
| uint64_t | kw::HashString (const std::string &str, int i, uint64_t hash) |
Return an unsigned 64bit hash of string. More... | |
| uint64_t | kw::HashString (const std::string &str) |
| template<typename T > | |
| RefWrap< T > | kw::Ref (T &v) |
| forces an argument to be passed by reference More... | |
| template<typename T , typename ReturnType > | |
| ReturnType | kw::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... | |
tooling for python-like kwargs in c++
Definition in file kwargs.h.