-
Notifications
You must be signed in to change notification settings - Fork 3
Home
veg
is a c++ utility library with some commonly used vocabulary types, functional utilities, assertion macros and basic struct reflection.
Aside from the default, copy, and move constructors, all the constructors in this library are tagged with empty tag types. They are documented as
Class::Class(TagType /* tag_name */, Args...);
// used like
Class c{tag_name, args...};
In this documentation's code examples, the relevant header includes and a using namespace veg;
declaration are implicit.
- correctness
- compile time and runtime performance
- noexcept correctness
- being sfinae friendly and providing friendly diagnostics
- constexpr support (since c++14)
- exception safety
- abi stability
- api stability (until 1.0)
- compatibility with standard library beyond what is provided for other types. i'm not opposed to the idea, it's just a bunch of work
- constexpr heap allocations
- full c++11 constexpr support
Various types for general-purpose programming.
Utilities for debugging and comparison operations.
Tools for working with function objects, such as composition, overloading, wrapping a reference, etc.
Tools for low level memory management, as well as veg
's allocator interface.
#include <veg/type_traits/...>
Concept emulation and concept-like type traits.