Honeycomb  0.1
Component-Model Framework
Classes | Namespaces | Typedefs | Functions
StdUtil.h File Reference
#include "Honey/Math/Numeral.h"
#include "Honey/Misc/Range.h"
#include "Honey/Memory/UniquePtr.h"
Include dependency graph for StdUtil.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  honey::deref_wrap< T, Ptr, ConstPtr >
 Wraps a pointer so that it behaves similar to a reference. More...
 
class  honey::recursive_wrap< T, Alloc >
 Allows for recursive type definitions, eg. class Object : vector<recursive_wrap<Object>>. More...
 
class  honey::Manip< Subclass >
 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  honey::ManipFunc< Func, Tuple >
 Helper to create a manipulator that takes arguments. More...
 

Namespaces

 honey
 Global Honeycomb namespace.
 
 honey::stdutil
 See Standard Util.
 

Typedefs

template<class Key , class Value , template< class > class Alloc>
using honey::stdutil::unordered_map = std::unordered_map< Key, Value, std::hash< Key >, std::equal_to< Key >, Alloc< pair< const Key, Value >>>
 std::unordered_map with custom allocator More...
 
template<class Key , class Value , template< class > class Alloc>
using honey::stdutil::unordered_multimap = std::unordered_multimap< Key, Value, std::hash< Key >, std::equal_to< Key >, Alloc< pair< const Key, Value >>>
 std::unordered_multimap with custom allocator More...
 
template<class Key , template< class > class Alloc>
using honey::stdutil::unordered_set = std::unordered_set< Key, std::hash< Key >, std::equal_to< Key >, Alloc< Key >>
 std::unordered_set with custom allocator More...
 
template<class Key , template< class > class Alloc>
using honey::stdutil::unordered_multiset = std::unordered_multiset< Key, std::hash< Key >, std::equal_to< Key >, Alloc< Key >>
 std::unordered_multiset with custom allocator More...
 

Functions

template<class StdContainer >
int honey::size (const StdContainer &cont)
 Safely get the size of a std container as a signed integer. More...
 
template<class Range >
auto honey::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 honey::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 Iter >
auto honey::stdutil::reverseIterToForward (Iter &&it) -> typename mt::removeRef< decltype(--it.base())>::type
 Convert reverse iterator to forward iterator. More...
 
template<class List >
List::reverse_iterator honey::stdutil::erase (List &list, const typename List::reverse_iterator &iter)
 Erase using reverse iterator. Returns reverse iterator to element after erased element. More...
 
template<class List >
List::iterator honey::stdutil::eraseVal (List &list, const typename List::value_type &val)
 Erase first occurrence of value. Returns iterator to next element after the erased element, or end if not found. More...
 
template<class List , class T >
void honey::stdutil::eraseVals (List &list, const T &val)
 Erase all occurrences of value. More...
 
template<class MultiMap , class Key , class Val >
auto honey::stdutil::findVal (MultiMap &map, const Key &key, const Val &val) -> mt_iterOf(map)
 Get iterator to key with value. Returns end if not found. More...
 
template<class MultiSet , class Val >
auto honey::stdutil::findVal (MultiSet &set, const Val &val) -> mt_iterOf(set)
 Get iterator to value. Returns end if not found. More...
 
template<class Func , class... Args>
auto honey::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 honey::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...