#include <hobbes/util/hash.H>
#include <memory>
#include <vector>
#include <unordered_map>
#include <map>
#include <iostream>
#include <atomic>
#include <mutex>
Go to the source code of this file.
|
template<size_t i, typename ... UniqueRefcMaps> |
std::enable_if< i==sizeof...(UniqueRefcMaps), size_t >::type | hobbes::compactAll (std::tuple< UniqueRefcMaps... > &) |
|
size_t | hobbes::compact () |
|
template<typename T > |
T | hobbes::align (T x, T m) |
|
template<typename T , typename S > |
const T * | hobbes::is (const S *s) |
|
template<typename T , typename S > |
T * | hobbes::isM (S *s) |
|
template<typename T , typename S > |
T * | hobbes::is (const std::shared_ptr< S > &s) |
|
|
template<size_t i, typename ... UniqueRefcMaps> |
std::enable_if< i< sizeof...(UniqueRefcMaps), size_t >::type compactAll(std::tuple< UniqueRefcMaps... > &ms) { return std::get< i >ms).compact()+compactAll< i+1, UniqueRefcMaps... >ms);}template< size_t i, typename T, typename ... Ts > struct TypeIndex { static const size_t value=i;};template< size_t i, typename T, typename ... Ts > struct TypeIndex< i, T, T, Ts... > { static const size_t value=i;};template< size_t i, typename T, typename U, typename ... Ts > struct TypeIndex< i, T, U, Ts... > { static const size_t value=TypeIndex< i+1, T, Ts... >::value;};template< typename ... UniqueRefcMaps > class unique_refc_maps { private:typedef std::tuple< UniqueRefcMaps... > RefcMaps;RefcMaps refcMaps;public:template< typename T > typename std::tuple_element< TypeIndex< 0, T, UniqueRefcMaps... >::value, RefcMaps >::type &at() { return std::get< TypeIndex< 0, T, UniqueRefcMaps... >::value >this-> | hobbes::refcMaps |
|