Honeycomb  0.1
Component-Model Framework
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
honey Namespace Reference

Global Honeycomb namespace. More...

Namespaces

 app
 Top-level application methods.
 
 atomic
 Atomic operations.
 
 bloom_filter
 BloomFilter util.
 
 bytestream
 ByteStream util.
 
 component
 Component methods.
 
 debug
 Debug Mode Functions
 
 encode
 Bytes to string encodings.
 
 exception
 Exception util.
 
 future
 Future util.
 
 hash
 Data hashing functions. Produce a small fingerprint from a larger data set. Two data sets may 'collide', producing the same fingerprint.
 
 json
 Json string serialization format methods.
 
 lock
 Mutex lock util.
 
 lockfree
 Lock-free methods and containers.
 
 log
 Logger methods.
 
 matrix
 Matrix util.
 
 mt
 Meta-programming and compile-time util.
 
 net
 Net util.
 
 random
 Random-related methods.
 
 ratio
 Ratio types.
 
 stdutil
 See Standard Util.
 
 string
 String util.
 
 stringstream
 std::stringstream util
 
 thread
 Thread util.
 
 vec
 Vec util.
 

Classes

class  Alge_
 Algebra. More...
 
class  Allocator
 std::allocator compatible allocator More...
 
class  AllocatorObject
 Objects that inherit from this class will use Alloc for new/delete ops. More...
 
class  App
 Top-level application flow controller, provides entry point and run loop. More...
 
class  Atomic
 
class  Atomic< T *, false >
 Wrapper around pointer type to make all operations atomic and sequentially consistent. More...
 
class  Atomic< T, false >
 Wrapper around a trivially copyable type to make load/store operations atomic and sequentially consistent. More...
 
class  Atomic< T, true >
 Wrapper around integral type to make all operations atomic and sequentially consistent. More...
 
class  BackSub
 Back substitute to solve a linear system. More...
 
class  Beta_
 Generate a random variate from a beta distribution $\mathrm{Beta}$. More...
 
class  BetaInc
 Evaluate the incomplete beta function. More...
 
class  Binomial_
 Generate a random integer variate from a binomial distribution. More...
 
class  BinomialNeg_
 Generate a random integer variate from a negative binomial distribution. More...
 
class  Bisect
 Find the root of a function by the bisection method. ie. Finds where function returns 0. More...
 
class  BisectN
 Find the root of a set of functions by the bisection method. ie. Finds (x,y,...) where all functions return 0. More...
 
struct  BitOpCommon
 Bit util common to any endian type. Use through class BitOp. More...
 
struct  BitOpEndian
 Bit util specific to endian type. Use through class BitOp. More...
 
struct  BitOpEndian< static_cast< int >(Endian::big)>
 Specialization for big endian. More...
 
struct  BitOpEndian< static_cast< int >(Endian::little)>
 Specialization for little endian. More...
 
class  BitSet_
 A compact array of bits. Dynamic version of std::bitset. More...
 
class  BloomFilter
 A space-efficient probabilistic data structure that is used to test set membership. Can be tuned to use less space at the expense of increased false positive probabilty. More...
 
class  Bootstrap
 Monte Carlo (random-based) method to estimate the interval of confidence in a function's result, when that function operates on samples from a complex or unknown distribution. More...
 
class  Buffer
 A contiguous region of referenced (not owned by object) memory. More...
 
struct  ByteArray
 Fixed array of N bytes. More...
 
class  Bytes
 String of bytes. More...
 
class  ByteStream
 An I/O stream into which objects may be serialized and subsequently deserialized. More...
 
class  ByteStreamBuf
 A stream I/O buffer of bytes, to be passed into ByteStream. More...
 
class  Chacha
 ChaCha8, a cryptographically secure pseudo random number generator. More...
 
class  ChiSqr_
 Generate a random variate from a noncentral chi-square $\chi^2$ distribution. More...
 
class  ComObject
 Component object. Object that consists of a collection of components. More...
 
class  Component
 Base class for components. Components can only be attached to one ComObject at a time. More...
 
class  ComRegistry
 Holds global list of all component types. More...
 
class  Condition
 Method to synchronize threads. Condition variables eliminate the need for repeated polling to check the value of some data. More...
 
class  ConditionAny
 Condition that can be used with any kind of lock. Slightly slower than the default Condition class. More...
 
class  ConditionLock
 Lock that is bound to a single condition. This is the common usage case of condition variables. More...
 
struct  DefaultAllocator
 Returns T::Allocator<T> if available, otherwise std::allocator<T> More...
 
struct  DefaultAllocator< T, typename mt::True< typename T::template Allocator< T > >::type >
 
struct  DefaultAllocator< T[], std::true_type >
 
class  DepGraph
 Dependency graph. Collects nodes and builds a searchable directed graph. More...
 
class  DepNode
 Dependency node for insertion into graph. More...
 
class  DepSched
 Scheduler that serializes and parallelizes task execution given a dependency graph of tasks and a pool of threads. More...
 
class  DepTask
 Base class of DepTask_, can be added to scheduler. Instances must be created through class DepTask_. More...
 
class  DepTask_
 Holds a functor and dependency information, enqueue in a scheduler to run the task. More...
 
class  deref_wrap
 Wraps a pointer so that it behaves similar to a reference. More...
 
class  Discrete_
 Generate random integer variate between min and max inclusive with uniform (flat) distribution. More...
 
class  DiscreteGen_
 Generate a random integer variate from a generalized discrete distribution. More...
 
class  Double_
 Defines 64-bit floating point operations and constants. More...
 
class  Duration
 Duration represented by repetitions of a period. The period must be a ratio. More...
 
class  Eigen
 Eigendecomposition. Decomposes any square (n x n) symmetric matrix $(A = A^T)$ into eigenvalues and eigenvectors. More...
 
class  EnumElem
 Base class of all generated enum classes. A single element in the enumeration. See Enumeration Classes. More...
 
struct  EnumError
 
class  EnumInfo_
 Run-time info about an enum class. Contains a list of elements and maps for element lookups. See Enumeration Classes for more info and examples. More...
 
class  Exception
 Base exception class. Exceptions inherited from this class provide debug info and can be thrown polymorphically (unlike standard c++ exceptions). More...
 
struct  finalize
 Functor to delete a pointer. More...
 
struct  finalize< T[], std::allocator< T > >
 Specialization for array. More...
 
struct  finalize< void, std::allocator< void > >
 Specialization for void. More...
 
class  Float_
 Defines floating point operations and constants. More...
 
class  Future
 Unique future, guarantees sole access to a future function result. More...
 
class  FutureBase
 Base class for Future types. More...
 
class  FutureCommon
 Mixin for common future methods. More...
 
class  Gamma_
 Generate a random variate from a gamma distribution $\mathrm{Gamma}$. More...
 
class  GammaFunc_
 Class to evaluate Gamma and related functions. More...
 
class  Gaussian_
 Generate a normally (Gaussian) distributed random variate. More...
 
class  HyperGeo_
 Generate a random integer variate from a hypergeometric distribution. More...
 
class  Id
 Holds a name string and its hashed value for fast comparison ops. See String Identifier. More...
 
class  IdLiteral
 Id created from a string literal at compile-time. More...
 
class  Interp_
 Interpolation math. More...
 
class  IntIter
 Incremental integer iterator (step size = 1). See range(int, int) to create. More...
 
class  IntStepIter
 Integer iterator with step size. See range(int, int, int) to create. More...
 
class  lazy
 Wraps a value so that it is calculated only when needed. A lock synchronizes access. More...
 
class  LinearLeastSqr
 Linear least squares solver. More...
 
class  Listener
 Holds a slot that can receive signals. More...
 
class  ListenerList
 Collection of listeners. More...
 
class  ListenerQueue
 Listener that holds queued slot for delayed processing of signals. More...
 
class  Log
 Logger. More...
 
class  Manip
 Base class to hold iostream manipulator state. Inherit from this class and call Subclass::inst(ios) to attach an instance of Subclass to an iostream. More...
 
struct  ManipFunc
 Helper to create a manipulator that takes arguments. More...
 
class  Matrix
 (m x n)-dimensional matrix More...
 
class  Matrix< 1, 1, Real, Options >
 Matrix 1x1 vector. More...
 
class  Matrix< 1, Dim, Real, Options, Alloc_ >
 Matrix row vector. More...
 
class  Matrix< 4, 4, Real, Options >
 4x4 homogeneous matrix class. Supports both affine and projective operations. More...
 
class  Matrix< Dim, 1, Real, Options, Alloc_ >
 Matrix column vector. More...
 
class  MatrixBase
 Matrix base class. More...
 
class  MemPool
 Memory pool. More...
 
class  MemPoolAllocator
 MemPool allocator. More...
 
class  Minimize
 Find a local minimum of a 1-dimensional function using "Brent's method" – bisection and inverse quadratic interpolation. More...
 
class  MinimizeN
 Find a local minimum of an n-dimensional function using "Powell's conjugate gradient descent method". More...
 
struct  MonoClock
 System-wide monotonic clock. High-resolution and steady-rate time since application start, can't go backwards. More...
 
class  MtMapCommon
 Common functions between map elem and the map tail specialization. Use through class MtMapElem. More...
 
class  MtMapElem
 Map element in recursive list. More...
 
class  MtMapIter
 Bidirectional iterator over map key/value pairs. More...
 
struct  MtPair
 Key/value pair. A pair can be constructed with the syntax: (key() = value) More...
 
class  Mutex
 A thread lock where the lock is acquired by suspending thread execution until it becomes available. More...
 
class  NameId
 Holds both a name string and its hashed value, and unlike Id the name is never compiled out. More...
 
class  Numeral
 Numeric type information, use numeral() to get instance safely from a static context. More...
 
class  NumeralFloat
 Numeric type info for floating point types. More...
 
class  NumeralInt
 Numeric type info for integer types. More...
 
class  Object
 Base class for objects. More...
 
class  optional
 Enables any type to be optional so it can exist in an uninitialized null state. More...
 
class  optional< T & >
 Specialization for references. More...
 
struct  optnull_t
 Null optional type. More...
 
struct  overload_
 
struct  overload_< Func, Funcs... >
 An overloaded visitor functor. More...
 
struct  overload_<>
 
class  PackagedTask
 A container that wraps a function so that its result is stored in a future when invoked. More...
 
class  PackagedTask< R(Param...)>
 
class  PeriodicSched
 Scheduler that executes tasks periodically or after a delay given a pool of threads. More...
 
class  PeriodicTask
 Base class of PeriodicTask_, returned by scheduler. More...
 
class  PeriodicTask_
 Holds a functor and period information, returned by scheduler. More...
 
class  Permute_
 Generate all permutations of a list. A functor can be specified for fast culling of entire subtrees of undesired permutations. More...
 
class  Poisson_
 Generate a random integer variate from a poisson distribution. More...
 
class  Polynomial
 Polynomial algorithms. More...
 
class  Promise
 Container to hold a delayed function result. More...
 
class  Property
 Generic property. More...
 
class  Property< vector< T > >
 Generic vector property. More...
 
class  PropertyBase
 Base class for all properties. More...
 
struct  PropertyError
 
class  PropertyObject
 Object that contains properties. More...
 
class  Qrd
 QR Decomposition. Can be used to solve least squares problems. More...
 
class  Quad_
 Defines 128-bit floating point operations and constants. More...
 
class  Quat_
 Quaternion rotation class. Represents a counter-clockwise rotation of an angle about its axis. More...
 
class  Random_
 Random-related methods. More...
 
class  RandomDist
 Base class for all random distributions. More...
 
class  RandomGen
 Random number generator interface. More...
 
class  Range_
 Iterator range. See range(Iter1&&, Iter2&&) to create. More...
 
struct  Ratio
 Class to hold compile-time finite rational numbers, ie. the fraction num / den. More...
 
class  RealBase
 Base class for real number operations. More...
 
class  RealIter
 Real number iterator. See range(Real, Real, Real) to create. More...
 
class  recursive_wrap
 Allows for recursive type definitions, eg. class Object : vector<recursive_wrap<Object>>. More...
 
class  RingIter
 Ring iterator. See ringRange() to create. More...
 
class  ScopeGuard_
 Run a function at scope exit. See ScopeGuard() to create. More...
 
class  SharedFuture
 Shared future, allows multiple access to a future function result. More...
 
class  SharedLock
 A scoped lock that references a shared mutex. Does a shared read lock on construction and unlocks on destruction. More...
 
class  SharedMutex
 A thread lock for shared data where there may be many readers and one writer. More...
 
class  SharedObj
 Reference-counted object for intrusive shared pointers. More...
 
class  SharedPtr
 Combined intrusive/non-intrusive smart pointer. Can reference and share any object automatically. More...
 
struct  Signal
 Multicast sender. More...
 
class  SimplexNoise
 Generate smooth noise over space. Implementation of Perlin's "Simplex Noise" generator. More...
 
class  SimplexNoiseCommon
 Methods common to all simplex noise dimensions. More...
 
class  SinTable
 Speeds up all trig functions at the cost of precision. Precision is roughly 1 / size. More...
 
class  SlotBase
 Multicast receiver. More...
 
class  SmallAllocator
 Global allocator for small memory blocks. To provide a custom pool define SmallAllocator_createSingleton_ and implement SmallAllocator_createSingleton(). More...
 
class  SpinLock
 A thread lock where the lock is acquired through a busy wait loop. More...
 
class  String
 Unicode UTF-16 string class, wrapper around std::u16string. More...
 
class  StudentT_
 Generate a random variate from a Student's t-distribution. More...
 
class  Svd
 Singular Value Decomposition. Can be used to calculate the pseudo-inverse of any matrix or solve least squares problems. More...
 
struct  SystemClock
 System-wide real-time clock. Low-resolution time since Unix Epoch, can possibly go backwards if changed by OS. More...
 
class  Thread
 Thread class. More...
 
class  TimedMutex
 A mutex that has a timed try-lock. More...
 
class  TimePoint
 TimePoint represented by a duration since a clock's epoch time. More...
 
class  TransferLock
 Scoped transfer of mutex ownership between two locks. More...
 
class  Transform_
 A 3D linear transform from TRS components (translation, rotation, and scale/skew) More...
 
class  TreeClone
 Clone and track changes to an entire tree. More...
 
class  TreeNode
 Unrooted acyclic tree. More...
 
class  Trig_
 Trigonometry. More...
 
class  TupleIter
 Wrapper around an iterator with tuple value type. When dereferenced returns I'th element. More...
 
class  TupleIter< Iter, I, std::bidirectional_iterator_tag >
 
class  TupleIter< Iter, I, std::forward_iterator_tag >
 
class  Uniform_
 Generate a random variate between min and max non-inclusive with uniform (flat) distribution. More...
 
class  UniqueLock
 A scoped lock that references any lockable. Locks on construction and unlocks on destruction. More...
 
class  UniquePtr
 Pointer to a unique, non-shared, object. Finalizer is run upon destruction (deletes object by default) if pointer is not null. More...
 
class  variant
 Multi-typed value. A variant is a value of any type from a fixed set of bounded types, the active bounded type may be changed dynamically. More...
 
struct  VariantError
 
class  Vec
 N-dimensional vector. More...
 
class  Vec< 1, Real, Options >
 1D vector More...
 
class  Vec< 2, Real, Options >
 2D vector More...
 
class  Vec< 3, Real, Options >
 3D vector More...
 
class  Vec< 4, Real, Options >
 4D vector More...
 
class  VecBase
 Vector base class. More...
 
class  VecSwizCon
 Vector for const swizzle operators. More...
 
class  VecSwizCon< 2, Real, Options >
 2D const swizzle vector More...
 
class  VecSwizCon< 3, Real, Options >
 3D const swizzle vector More...
 
class  VecSwizCon< 4, Real, Options >
 4D const swizzle vector More...
 
class  VecSwizConBase
 
class  VecSwizRef
 Vector reference holder for mutable swizzle operators. More...
 
class  VecSwizRef< 2, Real, Options >
 2D mutable swizzle vector More...
 
class  VecSwizRef< 3, Real, Options >
 3D mutable swizzle vector More...
 
class  VecSwizRef< 4, Real, Options >
 4D mutable swizzle vector More...
 
class  VecSwizRefBase
 
class  Vegas
 Monte Carlo (random-based) method to approximate the integral of a function over any number of dimensions. More...
 
class  WeakPtr
 Point to a shared object without holding a reference. The object is accessible through a lock, which prevents unexpected destruction. More...
 
class  Weibull_
 Generate a random integer variate from a weibull distribution. More...
 

Typedefs

typedef size_t szt
 Size type, shorthand for size_t. More...
 
typedef ptrdiff_t sdt
 Size difference type, shorthand for ptrdiff_t. More...
 
typedef Alge_< RealAlge
 
typedef Alge_< FloatAlge_f
 
typedef Alge_< DoubleAlge_d
 
typedef Alge_< QuadAlge_q
 
typedef Matrix< matrix::dynamic, matrix::dynamicMatrixN
 (m x n)-dimensional matrix types More...
 
typedef Matrix< matrix::dynamic, matrix::dynamic, FloatMatrixN_f
 
typedef Matrix< matrix::dynamic, matrix::dynamic, DoubleMatrixN_d
 
typedef Matrix< 4, 4, RealMatrix4
 
typedef Matrix< 4, 4, FloatMatrix4_f
 
typedef Matrix< 4, 4, DoubleMatrix4_d
 
typedef Quat_< RealQuat
 
typedef Quat_< FloatQuat_f
 
typedef Quat_< DoubleQuat_d
 
typedef Transform_< RealTransform
 
typedef Transform_< FloatTransform_f
 
typedef Transform_< DoubleTransform_d
 
typedef Trig_< RealTrig
 
typedef Trig_< FloatTrig_f
 
typedef Trig_< DoubleTrig_d
 
typedef Trig_< QuadTrig_q
 
typedef Vec< matrix::dynamicVecN
 N-dimensional column vector types. More...
 
typedef Vec< matrix::dynamic, FloatVecN_f
 
typedef Vec< matrix::dynamic, DoubleVecN_d
 
typedef Vec< matrix::dynamic, Real, matrix::Option::vecRowVecRowN
 N-dimensional row vector types. More...
 
typedef Vec< matrix::dynamic, Float, matrix::Option::vecRowVecRowN_f
 
typedef Vec< matrix::dynamic, Double, matrix::Option::vecRowVecRowN_d
 
typedef Vec< 1 > Vec1
 1D vector types More...
 
typedef Vec< 1, FloatVec1_f
 
typedef Vec< 1, DoubleVec1_d
 
typedef Vec< 2 > Vec2
 2D column vector types More...
 
typedef Vec< 2, FloatVec2_f
 
typedef Vec< 2, DoubleVec2_d
 
typedef Vec< 2, Real, matrix::Option::vecRowVecRow2
 2D row vector types More...
 
typedef Vec< 2, Float, matrix::Option::vecRowVecRow2_f
 
typedef Vec< 2, Double, matrix::Option::vecRowVecRow2_d
 
typedef Vec< 3 > Vec3
 3D column vector types More...
 
typedef Vec< 3, FloatVec3_f
 
typedef Vec< 3, DoubleVec3_d
 
typedef Vec< 3, Real, matrix::Option::vecRowVecRow3
 3D row vector types More...
 
typedef Vec< 3, Float, matrix::Option::vecRowVecRow3_f
 
typedef Vec< 3, Double, matrix::Option::vecRowVecRow3_d
 
typedef Vec< 4 > Vec4
 4D column vector types More...
 
typedef Vec< 4, FloatVec4_f
 
typedef Vec< 4, DoubleVec4_d
 
typedef Vec< 4, Real, matrix::Option::vecRowVecRow4
 4D row vector types More...
 
typedef Vec< 4, Float, matrix::Option::vecRowVecRow4_f
 
typedef Vec< 4, Double, matrix::Option::vecRowVecRow4_d
 
typedef Interp_< RealInterp
 
typedef Interp_< FloatInterp_f
 
typedef Interp_< DoubleInterp_d
 
typedef Beta_< RealBeta
 
typedef Beta_< FloatBeta_f
 
typedef Beta_< DoubleBeta_d
 
typedef Binomial_< RealBinomial
 
typedef Binomial_< FloatBinomial_f
 
typedef Binomial_< DoubleBinomial_d
 
typedef BinomialNeg_< RealBinomialNeg
 
typedef BinomialNeg_< FloatBinomialNeg_f
 
typedef BinomialNeg_< DoubleBinomialNeg_d
 
typedef ChiSqr_< RealChiSqr
 
typedef ChiSqr_< FloatChiSqr_f
 
typedef ChiSqr_< DoubleChiSqr_d
 
typedef Discrete_< int32Discrete
 
typedef Discrete_< int64Discrete_d
 
typedef DiscreteGen_< RealDiscreteGen
 
typedef DiscreteGen_< FloatDiscreteGen_f
 
typedef DiscreteGen_< DoubleDiscreteGen_d
 
typedef Gamma_< RealGamma
 
typedef Gamma_< FloatGamma_f
 
typedef Gamma_< DoubleGamma_d
 
typedef GammaFunc_< RealGammaFunc
 
typedef GammaFunc_< FloatGammaFunc_f
 
typedef GammaFunc_< DoubleGammaFunc_d
 
typedef Gaussian_< RealGaussian
 
typedef Gaussian_< FloatGaussian_f
 
typedef Gaussian_< DoubleGaussian_d
 
typedef HyperGeo_< RealHyperGeo
 
typedef HyperGeo_< FloatHyperGeo_f
 
typedef HyperGeo_< DoubleHyperGeo_d
 
typedef Poisson_< RealPoisson
 
typedef Poisson_< FloatPoisson_f
 
typedef Poisson_< DoublePoisson_d
 
typedef StudentT_< RealStudentT
 
typedef StudentT_< FloatStudentT_f
 
typedef StudentT_< DoubleStudentT_d
 
typedef Uniform_< RealUniform
 
typedef Uniform_< FloatUniform_f
 
typedef Uniform_< DoubleUniform_d
 
typedef Weibull_< RealWeibull
 
typedef Weibull_< FloatWeibull_f
 
typedef Weibull_< DoubleWeibull_d
 
typedef Permute_< RealPermute
 
typedef Permute_< FloatPermute_f
 
typedef Permute_< DoublePermute_d
 
typedef Random_< RealRandom
 
typedef Random_< FloatRandom_f
 
typedef Random_< DoubleRandom_d
 
typedef Numeral< Real >::Real_ Real_
 Operations and constants for Real type. See Float_, Double_. More...
 
typedef AllocatorObject< SmallAllocatorSmallAllocatorObject
 Inherit from this class to use the small block allocator. More...
 
typedef BitOpEndian< ENDIANBitOp
 Provides methods for manipulating bits. More...
 
typedef BitSet_ BitSet
 
typedef MtMapElem< mt::Void, mt::Void, mt::VoidMtMapTail
 Tail of map list. More...
 
template<class... Pairs>
using MtMap = typename priv::MtMap_< Pairs... >::type
 Declare a map type with MtMap<Val1,Key1, Val2,Key2, ...> More...
 
typedef vector< int > IntList
 Integer list property. More...
 
typedef vector< RealRealList
 Real list property. More...
 
typedef uint8 byte
 An unsigned 8-bit integer. More...
 
typedef Buffer< byteByteBuf
 A buffer of bytes. More...
 
typedef Buffer< const byteByteBufConst
 
typedef char16_t Char
 Represents a single code unit (not code point) for class String. More...
 
Real types
typedef Double_::Real Double
 double type More...
 
typedef Float_::Real Float
 float type More...
 
typedef Quad_::Real Quad
 float128 type More...
 
typedef float Real
 Real number type. See Real_ for real number operations and constants. More...
 
typedef long double float128
 128 bit float type More...
 
Integral types
typedef char int8
 
typedef unsigned char uint8
 
typedef short int16
 
typedef unsigned short uint16
 
typedef int int32
 
typedef unsigned int uint32
 
typedef long long int64
 
typedef unsigned long long uint64
 
typedef int64 int128
 
typedef uint64 uint128
 

Enumerations

enum  Endian { Endian::little, Endian::big }
 Endian (byte order) types. More...
 

Functions

template<class T >
constexpr Numeral< T > numeral ()
 Get numeric type info safely from a static context. More...
 
template<class T >
constexpr Numeral< T > numeral (const T &)
 Get numeric type info of deduced type. More...
 
template<class T >
T * alloc (szt count=1)
 Allocate memory for count number of T objects. Objects are not constructed. More...
 
template<class T >
void free (T *&p)
 Deallocate memory and set pointer to null. Object is not destroyed. More...
 
template<class T >
void free (T *const &p)
 
template<class T >
T * alignFloor (T *p, szt bytes)
 Align a pointer to the previous byte boundary bytes. Does nothing if p is already on boundary. Alignment must be a power of two. More...
 
template<class T >
T * alignCeil (T *p, szt bytes)
 Align a pointer to the next byte boundary bytes. Does nothing if p is already on boundary. Alignment must be a power of two. More...
 
template<class T , class Alloc >
T * allocAligned (szt count, szt align_, Alloc &&a)
 Allocate memory with alignment. Alignment must be a power of two. Allocator element type must be int8. More...
 
template<class T >
T * allocAligned (szt count, szt align)
 Allocate memory with alignment using default allocator. More...
 
template<class T , class Alloc >
void freeAligned (T *p, Alloc &&a)
 Deallocate aligned memory. Allocator element type must be int8. More...
 
template<class T >
void freeAligned (T *p)
 Deallocate aligned memory using default allocator. More...
 
template<class T >
void delete_ (T *&p)
 Destruct object, free memory and set pointer to null. More...
 
template<class T >
void delete_ (T *const &p)
 
template<class T , class Alloc >
void delete_ (T *&p, Alloc &&a)
 Destruct object, free memory using allocator and set pointer to null. More...
 
template<class T , class Alloc >
void delete_ (T *const &p, Alloc &&a)
 
template<class T >
void deleteArray (T *&p)
 Destruct all array objects, free memory and set pointer to null. More...
 
template<class T >
void deleteArray (T *const &p)
 
MemPoolSmallAllocator_createSingleton ()
 Default implementation. More...
 
template<class... Pairs>
auto mtmap (Pairs &&...pairs) -> decltype(priv::mtmap_(priv::PairSeqGen< Pairs... >(), forward< Pairs >(pairs)...))
 Construct a map from (key() = value) pairs. More...
 
template<class Iter1 , class Iter2 , class Func >
auto for_each_mtmap (Iter1 itBegin, Iter2 itEnd, Func &&func) -> typename std::enable_if<!std::is_same< typename Iter1::Pair::Key, typename Iter2::Pair::Key >::value >::type
 Iterate over map calling functor (visitor) for each key/value pair. More...
 
template<class Iter >
auto seqToIter (Iter &&seq) -> typename std::enable_if< mt::isIterator< Iter >::value, Iter && >::type
 Convert a sequence to a forward iterator. Overload for iterator type. Returns the iterator itself. More...
 
template<class Range >
auto seqToIter (Range &&seq) -> typename std::enable_if< mt::isRange< Range >::value, mt_iterOf(seq)>::type
 Convert a sequence to a forward iterator. Overload for range type. Returns the range's begin iterator. More...
 
template<class Iter1 , class Iter2 >
std::enable_if< mt::isIterator< Iter1 >::value, Range_< Iter1, Iter2 > >::type range (Iter1 &&first, Iter2 &&last)
 Range from iterators [first, last) More...
 
template<class T1 , class T2 >
Range_< T1, T2 > range (pair< T1, T2 > &p)
 Range from iterator pair [first, second) More...
 
template<class T1 , class T2 >
Range_< T1, T2 > range (const pair< T1, T2 > &p)
 
template<class T1 , class T2 >
Range_< T1, T2 > range (tuple< T1, T2 > &t)
 Range from iterator tuple [0, 1) More...
 
template<class T1 , class T2 >
Range_< T1, T2 > range (const tuple< T1, T2 > &t)
 
template<class Range >
auto reversed (Range &&range) -> Range_< std::reverse_iterator< mt_iterOf(range)>, std::reverse_iterator< mt_iter_endOf(range)>>
 Reverse a range. Begin/End iterators must be bidirectional. More...
 
OutSeq && map (Range &&, Seqs &&..., OutSeq &&, Func &&)
 Transform a series of sequences into an output. More...
 
Accum reduce (Range &&, Seqs &&..., Accum &&initVal, Func &&)
 Accumulate a series of sequences into an output. More...
 
Iter find (Range &&, Seqs &&..., Func &&pred)
 Find an element in a series of sequences. More...
 
Range_< FilterIter, FilterIter > filter (Range &&, Seqs &&..., Func &&pred)
 Filter a range by ignoring undesired elements. More...
 
template<class Range >
szt countOf (Range &&range)
 Count number of elements in range. More...
 
template<class Range >
void deleteRange (Range &&range)
 Delete all elements in range. More...
 
template<class Range , class Alloc >
void deleteRange (Range &&range, Alloc &&a)
 Delete all elements in range using allocator. More...
 
template<class Int , class Int2 , class Int_ = typename std::common_type<Int,Int2>::type>
std::enable_if< std::is_integral< Int_ >::value, Range_< IntIter< Int_ >, IntIter< Int_ > > >::type range (Int begin, Int2 end)
 Create a range that increments through the integral range [begin,end) More...
 
template<class Int >
std::enable_if< std::is_integral< Int >::value, Range_< IntIter< Int >, IntIter< Int > > >::type range (Int end)
 Create a range that increments through the integral range [0,end) More...
 
template<class Int , class Int2 , class Int3 , class Int_ = typename std::common_type<Int,Int2,Int3>::type>
std::enable_if< std::is_integral< Int_ >::value, Range_< IntStepIter< Int_ >, IntStepIter< Int_ > > >::type range (Int begin, Int2 end, Int3 step)
 Create a range that steps through the integral range [begin,end) More...
 
template<class Real , class Real2 , class Real3 , class Real_ = typename std::common_type<Real,Real2,Real3>::type>
std::enable_if< std::is_floating_point< Real_ >::value, Range_< RealIter< Real_ >, RealIter< Real_ > > >::type range (Real begin, Real2 end, Real3 step=1)
 Create a range that steps through the real number range [begin,end) More...
 
template<class Range , class Iter >
auto ringRange (Range &&range, const Iter &cur) -> Range_< RingIter< Range, Iter >, RingIter< Range, Iter >>
 Create an iterator adapter range that does one full cyclic loop starting at cur through the range. More...
 
template<class StdContainer >
int size (const StdContainer &cont)
 Safely get the size of a std container as a signed integer. More...
 
template<class Range >
auto keys (Range &&range) -> Range_< TupleIter< mt_iterOf(range), 0 >, TupleIter< mt_iterOf(range), 0 >>
 Create a range over the keys of a map or map iterator range. More...
 
template<class Range >
auto values (Range &&range) -> Range_< TupleIter< mt_iterOf(range), 1 >, TupleIter< mt_iterOf(range), 1 >>
 Create a range over the values of a map or map iterator range. More...
 
template<class Func , class... Args>
auto bind_fill (Func &&f, Args &&...args) -> decltype( priv::bind_fill< mt::funcTraits< typename mt::removeRef< Func >::type >::arity >()(forward< Func >(f), forward< Args >(args)...))
 Version of bind that automatically fills in placeholders for unspecified arguments. More...
 
template<class Func , class... Args>
auto manipFunc (Func &&f, Args &&...args)
 Helper to create a manipulator that takes arguments. eg. A manip named 'foo': auto foo(int val) { return manipFunc([=](ios_base& ios) { FooManip::inst(ios).val = val; }); } More...
 
template<class... Funcs>
overload_< Funcs... > overload (Funcs &&...fs)
 Create an overloaded visitor functor. More...
 
ostream & operator<< (ostream &os, const Bytes &val)
 
istream & operator>> (istream &is, Bytes &val)
 
constexpr byte operator""_b (unsigned long long int i)
 Construct byte from integer literal (eg. 128_b) More...
 
constexpr byte operator""_b (char c)
 Construct byte from character literal (eg. 'x'_b) More...
 
Bytes operator""_b (const char *str, szt len)
 Construct bytes from string literal (eg. "something"_b) More...
 
ostream & operator<< (ostream &os, ByteBufConst val)
 Write byte buffer to string stream using current encoding. More...
 
template<class Int >
std::enable_if< std::is_integral< Int >::value, Bytes >::type toBytes (Int val, Endian order=Endian::big)
 Convert integral value to bytes. More...
 
template<class Int >
std::enable_if< std::is_integral< Int >::value, Int >::type fromBytes (const Bytes &bs, Endian order=Endian::big)
 Convert bytes to integral value. More...
 
ByteStreamoperator<< (ByteStream &os, const bool val)
 Bool to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const byte val)
 Byte to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const char val)
 UTF-8 char to bytes. More...
 
template<class T , typename std::enable_if< std::is_integral< T >::value||std::is_floating_point< T >::value, int >::type = 0>
ByteStreamoperator<< (ByteStream &os, const T val)
 Multi-byte number to big-endian bytes. More...
 
ByteStreamoperator<< (ByteStream &os, Char val)
 Char to bytes. More...
 
ByteStreamoperator>> (ByteStream &is, bool &val)
 Bool from bytes. More...
 
ByteStreamoperator>> (ByteStream &is, byte &val)
 Byte from bytes. More...
 
ByteStreamoperator>> (ByteStream &is, char &val)
 UTF-8 char from bytes. More...
 
template<class T , typename std::enable_if< std::is_integral< T >::value||std::is_floating_point< T >::value, int >::type = 0>
ByteStreamoperator>> (ByteStream &is, T &val)
 Multi-byte number from big-endian bytes. More...
 
ByteStreamoperator>> (ByteStream &is, Char &val)
 Char from bytes. More...
 
template<class T1 , class T2 >
ByteStreamoperator<< (ByteStream &os, const pair< T1, T2 > &p)
 Pair to bytes. More...
 
template<class Tuple >
std::enable_if< mt::isTuple< Tuple >::value, ByteStream & >::type operator<< (ByteStream &os, Tuple &&t)
 Tuple to bytes. More...
 
template<class T , szt N>
ByteStreamoperator<< (ByteStream &os, const array< T, N > &a)
 Array to bytes. More...
 
template<class T , szt N, typename std::enable_if<!std::is_same< T, char >::value &&!std::is_same< T, Char >::value, int >::type = 0>
ByteStreamoperator<< (ByteStream &os, const T(&a)[N])
 C-array to bytes. C-arrays of chars are interpreted as C-strings, so for proper char arrays use std::array instead. More...
 
template<class T , class Alloc >
ByteStreamoperator<< (ByteStream &os, const vector< T, Alloc > &vec)
 Vector to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const String &str)
 String to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const Char *str)
 C-string to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const std::string &str)
 UTF-8 string to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const char *str)
 UTF-8 C-string to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const Bytes &bs)
 Bytes to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, ByteBufConst bs)
 Byte buffer to bytes. More...
 
template<class T , class Compare , class Alloc >
ByteStreamoperator<< (ByteStream &os, const set< T, Compare, Alloc > &set)
 Set to bytes. More...
 
template<class T , class Compare , class Alloc >
ByteStreamoperator<< (ByteStream &os, const multiset< T, Compare, Alloc > &set)
 Multi-Set to bytes. More...
 
template<class Key , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator<< (ByteStream &os, const unordered_set< Key, Hash, KeyEqual, Alloc > &set)
 Unordered Set to bytes. More...
 
template<class Key , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator<< (ByteStream &os, const unordered_multiset< Key, Hash, KeyEqual, Alloc > &set)
 Unordered Multi-Set to bytes. More...
 
template<class Key , class T , class Compare , class Alloc >
ByteStreamoperator<< (ByteStream &os, const std::map< Key, T, Compare, Alloc > &map)
 Map to bytes. More...
 
template<class Key , class T , class Compare , class Alloc >
ByteStreamoperator<< (ByteStream &os, const multimap< Key, T, Compare, Alloc > &map)
 Multi-Map to bytes. More...
 
template<class Key , class T , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator<< (ByteStream &os, const unordered_map< Key, T, Hash, KeyEqual, Alloc > &map)
 Unordered Map to bytes. More...
 
template<class Key , class T , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator<< (ByteStream &os, const unordered_multimap< Key, T, Hash, KeyEqual, Alloc > &map)
 Unordered Multi-Map to bytes. More...
 
template<class T1 , class T2 >
ByteStreamoperator>> (ByteStream &is, pair< T1, T2 > &p)
 Pair from bytes. More...
 
template<class Tuple >
std::enable_if< mt::isTuple< Tuple >::value, ByteStream & >::type operator>> (ByteStream &is, Tuple &t)
 Tuple from bytes. More...
 
template<class T , szt N>
ByteStreamoperator>> (ByteStream &is, array< T, N > &a)
 Array from bytes. More...
 
template<class T , szt N, typename std::enable_if<!std::is_same< T, char >::value &&!std::is_same< T, Char >::value, int >::type = 0>
ByteStreamoperator>> (ByteStream &is, T(&a)[N])
 C-array from bytes. C-arrays of chars are interpreted as C-strings, so for proper char arrays use std::array instead. More...
 
template<class T , class Alloc >
ByteStreamoperator>> (ByteStream &is, vector< T, Alloc > &vec)
 Vector from bytes. More...
 
ByteStreamoperator>> (ByteStream &is, String &str)
 String from bytes. More...
 
ByteStreamoperator>> (ByteStream &is, Char *str)
 C-string from bytes. Pointer must point to allocated memory that is large enough to hold string including null character. More...
 
ByteStreamoperator>> (ByteStream &is, std::string &str)
 UTF-8 string from bytes. More...
 
ByteStreamoperator>> (ByteStream &is, char *str)
 UTF-8 C-string from bytes. Pointer must point to allocated memory that is large enough to hold string including null character. More...
 
ByteStreamoperator>> (ByteStream &is, Bytes &bs)
 Bytes from bytes. More...
 
template<class T , typename std::enable_if< std::is_same< T, byte * >::value, int >::type = 0>
ByteStreamoperator>> (ByteStream &is, T bs)
 Byte C-string from bytes, unimplemented, use ByteStream::read(bs, n) instead. More...
 
template<class T , class Compare , class Alloc >
ByteStreamoperator>> (ByteStream &is, set< T, Compare, Alloc > &set)
 Set from bytes. More...
 
template<class T , class Compare , class Alloc >
ByteStreamoperator>> (ByteStream &is, multiset< T, Compare, Alloc > &set)
 Multi-Set from bytes. More...
 
template<class Key , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator>> (ByteStream &is, unordered_set< Key, Hash, KeyEqual, Alloc > &set)
 Unordered Set from bytes. More...
 
template<class Key , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator>> (ByteStream &is, unordered_multiset< Key, Hash, KeyEqual, Alloc > &set)
 Unordered Multi-Set from bytes. More...
 
template<class Key , class T , class Compare , class Alloc >
ByteStreamoperator>> (ByteStream &is, std::map< Key, T, Compare, Alloc > &map)
 Map from bytes. More...
 
template<class Key , class T , class Compare , class Alloc >
ByteStreamoperator>> (ByteStream &is, multimap< Key, T, Compare, Alloc > &map)
 Multi-Map from bytes. More...
 
template<class Key , class T , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator>> (ByteStream &is, unordered_map< Key, T, Hash, KeyEqual, Alloc > &map)
 Unordered Map from bytes. More...
 
template<class Key , class T , class Hash , class KeyEqual , class Alloc >
ByteStreamoperator>> (ByteStream &is, unordered_multimap< Key, T, Hash, KeyEqual, Alloc > &map)
 Unordered Multi-Map from bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const Id &val)
 Id to bytes. More...
 
ByteStreamoperator>> (ByteStream &is, Id &val)
 Id from bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const IdLiteral &val)
 Literal id to bytes. More...
 
ByteStreamoperator<< (ByteStream &os, const NameId &val)
 Named id to bytes. More...
 
ByteStreamoperator>> (ByteStream &is, NameId &val)
 Named id from bytes. More...
 
template<class T , class Fin >
ByteStreamoperator<< (ByteStream &os, const UniquePtr< T, Fin > &p)
 UniquePtr to bytes, outputs object pointed to (and exists flag), or a null flag if no object. More...
 
template<class T , class Fin >
ByteStreamoperator>> (ByteStream &is, UniquePtr< T, Fin > &p)
 UniquePtr from bytes, object is allocated if necessary using current bytestream allocator. More...
 
template<class T >
ByteStreamoperator<< (ByteStream &os, const SharedPtr< T > &p)
 SharedPtr to bytes, outputs object pointed to (and exists flag), or index into current shared table if already output (index=flag-2), or a null flag if no object. More...
 
template<class T >
ByteStreamoperator>> (ByteStream &is, SharedPtr< T > &p)
 SharedPtr from bytes, object is allocated if necessary using current bytestream allocator. More...
 
template<class Rep , class Period >
ByteStreamoperator<< (ByteStream &os, const Duration< Rep, Period > &d)
 Duration to bytes. More...
 
template<class Rep , class Period >
ByteStreamoperator>> (ByteStream &is, Duration< Rep, Period > &d)
 Duration from bytes. More...
 
constexpr IdLiteral operator""_id (const char *str, szt len)
 Create an id from a string literal at compile-time. More...
 
ostringstream sout ()
 Shorthand to create ostringstream. More...
 
ostream & endl (ostream &os)
 End line and apply any indentation to the next line. More...
 
template<class Char , class Comp >
static int compare_ (const Char *str, szt n, szt pos, szt len, const Char *str2, szt n2, szt pos2, szt len2, Comp &&comp)
 
template<class T , class R = typename std::decay<T>::type>
Future< R > FutureCreate (T &&val)
 Create a future that is immediately ready with the value. More...
 
Future< void > FutureCreate ()
 
template<class T , class R = typename std::decay<T>::type>
SharedFuture< R > SharedFutureCreate (T &&val)
 Create a shared future that is immediately ready with the value. More...
 
SharedFuture< void > SharedFutureCreate ()
 
String methods
String operator+ (const String &lhs, const String &rhs)
 
String operator+ (const String &lhs, const std::string &rhs)
 
String operator+ (const String &lhs, const Char *rhs)
 
String operator+ (const String &lhs, const char *rhs)
 
String operator+ (const std::string &lhs, const String &rhs)
 
String operator+ (const Char *lhs, const String &rhs)
 
String operator+ (const char *lhs, const String &rhs)
 
bool operator== (const String &lhs, const String &rhs)
 
bool operator== (const String &lhs, const Char *rhs)
 
bool operator== (const Char *lhs, const String &rhs)
 
bool operator!= (const String &lhs, const String &rhs)
 
bool operator!= (const String &lhs, const Char *rhs)
 
bool operator!= (const Char *lhs, const String &rhs)
 
bool operator< (const String &lhs, const String &rhs)
 
bool operator< (const String &lhs, const Char *rhs)
 
bool operator< (const Char *lhs, const String &rhs)
 
bool operator> (const String &lhs, const String &rhs)
 
bool operator> (const String &lhs, const Char *rhs)
 
bool operator> (const Char *lhs, const String &rhs)
 
bool operator<= (const String &lhs, const String &rhs)
 
bool operator<= (const String &lhs, const Char *rhs)
 
bool operator<= (const Char *lhs, const String &rhs)
 
bool operator>= (const String &lhs, const String &rhs)
 
bool operator>= (const String &lhs, const Char *rhs)
 
bool operator>= (const Char *lhs, const String &rhs)
 
const Charc_str (const Char *str)
 Ensures that str points to a valid C-string. If str is null then the result is an empty C-string (ie. ""). More...
 
const char * c_str (const char *str)
 

Variables

static optnull_t optnull
 Null optional, use to reset an optional to an uninitialized state or test for initialization. More...
 

Detailed Description

Global Honeycomb namespace.

Typedef Documentation

Provides methods for manipulating bits.

typedef uint8 honey::byte

An unsigned 8-bit integer.

A buffer of bytes.

double type

float type

typedef long double honey::float128

128 bit float type

typedef short honey::int16
typedef int honey::int32
typedef long long honey::int64
typedef char honey::int8
Examples:
MtMap.cpp.
typedef Matrix<4,4,Real> honey::Matrix4

(m x n)-dimensional matrix types

float128 type

typedef float honey::Real

Real number type. See Real_ for real number operations and constants.

Operations and constants for Real type. See Float_, Double_.

typedef ptrdiff_t honey::sdt

Size difference type, shorthand for ptrdiff_t.

typedef size_t honey::szt

Size type, shorthand for size_t.

typedef unsigned short honey::uint16
typedef unsigned int honey::uint32
typedef unsigned long long honey::uint64
typedef unsigned char honey::uint8
typedef Vec<1> honey::Vec1

1D vector types

typedef Vec<1,Double> honey::Vec1_d
typedef Vec<1,Float> honey::Vec1_f
typedef Vec<2> honey::Vec2

2D column vector types

typedef Vec<2,Double> honey::Vec2_d
typedef Vec<2,Float> honey::Vec2_f
typedef Vec<3> honey::Vec3

3D column vector types

typedef Vec<3,Double> honey::Vec3_d
typedef Vec<3,Float> honey::Vec3_f
typedef Vec<4> honey::Vec4

4D column vector types

typedef Vec<4,Double> honey::Vec4_d
typedef Vec<4,Float> honey::Vec4_f

N-dimensional column vector types.

2D row vector types

3D row vector types

4D row vector types

N-dimensional row vector types.

Enumeration Type Documentation

enum honey::Endian
strong

Endian (byte order) types.

Enumerator
little 

low byte first

big 

high byte first

Function Documentation

template<class Char , class Comp >
static int honey::compare_ ( const Char str,
szt  n,
szt  pos,
szt  len,
const Char str2,
szt  n2,
szt  pos2,
szt  len2,
Comp &&  comp 
)
static
template<class Int >
std::enable_if<std::is_integral<Int>::value, Int>::type honey::fromBytes ( const Bytes bs,
Endian  order = Endian::big 
)

Convert bytes to integral value.

template<class T , class R = typename std::decay<T>::type>
Future<R> honey::FutureCreate ( T &&  val)

Create a future that is immediately ready with the value.

Future<void> honey::FutureCreate ( )
inline
template<class T >
constexpr Numeral<T> honey::numeral ( )

Get numeric type info safely from a static context.

template<class T >
constexpr Numeral<T> honey::numeral ( const T &  )

Get numeric type info of deduced type.

constexpr byte honey::operator""_b ( unsigned long long int  i)

Construct byte from integer literal (eg. 128_b)

constexpr byte honey::operator""_b ( char  c)

Construct byte from character literal (eg. 'x'_b)

Bytes honey::operator""_b ( const char *  str,
szt  len 
)
inline

Construct bytes from string literal (eg. "something"_b)

ostream& honey::operator<< ( ostream &  os,
const Bytes val 
)
ostream& honey::operator<< ( ostream &  os,
ByteBufConst  val 
)
inline

Write byte buffer to string stream using current encoding.

istream& honey::operator>> ( istream &  is,
Bytes val 
)
template<class... Funcs>
overload_<Funcs...> honey::overload ( Funcs &&...  fs)

Create an overloaded visitor functor.

template<class T , class R = typename std::decay<T>::type>
SharedFuture<R> honey::SharedFutureCreate ( T &&  val)

Create a shared future that is immediately ready with the value.

SharedFuture<void> honey::SharedFutureCreate ( )
inline
template<class Int >
std::enable_if<std::is_integral<Int>::value, Bytes>::type honey::toBytes ( Int  val,
Endian  order = Endian::big 
)

Convert integral value to bytes.

Variable Documentation

optnull_t honey::optnull
static

Null optional, use to reset an optional to an uninitialized state or test for initialization.