Quick is collection of highly reusable C++ utilities, which are not available in boost or std.
namespace qk = quick;Defined in <quick/variant.hpp>
The utility quick::variant serves the purpose of std::variant or boost::variant. However it differs in usage patterns. Learn More.
Defined in <quick/hash.hpp>
The utility quick::hash<T> extends the std::hash<T> and support the default hashing for: std::vector, std::list, std::set, std::tuple, std::pair, enum types, std::map, Custom type T having "std::size_t T::GetHash() const" member . Learn More.
Defined in <quick/unordered_set.hpp>
The utility quick::unordered_set<..> in an alias to std::unordered_set<..> with default hasher = quick::hash<Key>.
Learn More.
Defined in <quick/unordered_map.hpp>
The utility quick::unordered_map<..> in an alias to std::unordered_map<..> with default hasher = quick::hash<Key>. Learn More.
Defined in <quick/debug_stream.hpp>
class quick::DebugStream is super intuitive and easy to use utility for constructing human readable representation of complex and deeply nested C++ objects. Learn More.
Defined in <quick/byte_stream.hpp>
class quick::ByteStream is super intuitive, safe, reliable and easy to use utility for byte serialisation and deserialization of complex and deeply nested C++ objects. Learn More.
The utility quick/debug.hpp populates the
operator<<(std::ostream&, const T&) for commonly used types, ex: std::map, std::tuple, std::pair, std::tuple, std::list, std::set, std::unordered_set, std::unordered_map,
Custom type T having "void T::DebugStream(quick::DebugStream& ds) const" member,
Custom type T having "std::string T::DebugString() const" member.
Defined in <quick/time.hpp>
int64_t quick::GetEpochMicroSeconds() - Returns the micro seconds elapsed since epoch.
Defined in <quick/time.hpp>
class quick::MicroSecondTimer - A timer utility useful for measuring the time taken in the processing of a task. Learn More.
Defined in <quick/type_traits.hpp>
template<template<class...> class Template, class... Args>
class test_specialization;quick::test_specialization is a type trait used for testing if a template can be specialised on given Args....
Defined in <quick/stl_utils.hpp>
bool ContainsKey(const C& container, const V& value);
Checks if a key is present in the given container.
Defined in <quick/stl_utils.hpp>
template <typename MapType, class KeyType, class FallbackType>
FallbackType Get(const MapType& input_map,
const KeyType& key,
const Fallback& fallback_object);
- Returns
input_map.at(key)if defined, else return fallback_object. - type
FallbackTypeshould be same asMapType::mapped_type.