OSVR-Core
Classes | Namespaces
TypeSafeIdHash.h File Reference

Header defining specializations of std::hash that forward to the contained integer type, primarily to allow TypeSafeId values to be used in as keys in unordered_map<> and friends. More...

#include <osvr/Util/TypeSafeId.h>
#include <osvr/Util/SizedInt.h>
#include <functional>
#include <type_traits>
#include <cassert>
#include <climits>

Go to the source code of this file.

Classes

struct  std::hash< osvr::util::TypeSafeId< Tag > >
 
class  osvr::util::detail::IntegerComposition< NewType >
 
struct  osvr::util::HashIdAggregate< IdAggregate >
 Template specialized for common aggregates of TypeSafeIds, with the intent that you can simply open namespace std and derive your specialization of struct hash from this. More...
 
struct  osvr::util::HashIdAggregate< std::pair< TypeSafeId< FirstTag >, TypeSafeId< SecondTag > > >
 

Namespaces

 osvr
 The main namespace for all C++ elements of the framework, internal and external.
 
 osvr::util
 The Util library: Functionality not necessarily coupled to any particular core library, serving more as a common base layer behind all systems.
 

Detailed Description

Header defining specializations of std::hash that forward to the contained integer type, primarily to allow TypeSafeId values to be used in as keys in unordered_map<> and friends.

Also contains on-request specializations for use with aggregates of type-safe IDs.

Date
2016
Author
Sensics, Inc. http://sensics.com/osvr