LocalGuidance
A library that generates velocity references to follow a path.
CompileTimeKeys.hpp File Reference
#include <cassert>
#include <functional>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <typeinfo>
#include <std_utils/containers/CompileTimeString.hpp>
#include <std_utils/containers/Key.hpp>
#include <std_utils/containers/KeyArray.hpp>
Include dependency graph for CompileTimeKeys.hpp:
This graph shows which files directly or indirectly include this file:

Classes

class  std_utils::CompileTimeKey< Enum_, e_, Name_, id_ >
 
struct  std_utils::is_compile_time_key< T >
 isCompileTimeKey false type More...
 
struct  std_utils::is_compile_time_key< CompileTimeKey< Enum_, e, Name_, id > >
 isCompileTimeKey true type More...
 
class  std_utils::CompileTimeKeys< REST_ >
 Defines the compile time keys (ctk) as a variadic template. More...
 
class  std_utils::CompileTimeKeys< Enum_, REST_... >
 Defines the compile time keys (ctk) of Enum_ type as a variadic template. More...
 
class  std_utils::CompileTimeKeys< Enum_, KeyType_, REST_... >
 Defines the compile time keys (ctk) of enum type Enum_ but has wrong key entries. More...
 
class  std_utils::CompileTimeKeys< Enum_, CompileTimeKey< Enum_, e_, Name_, id_ >, REST_... >
 
struct  std_utils::is_compile_time_keys< REST_ >
 isCompileTimeKeys false type More...
 
struct  std_utils::is_compile_time_keys< CompileTimeKeys< REST_... > >
 isCompileTimeKeys true type More...
 
struct  std_utils::ctk_concatenate< Enum_, Keys1_, Keys2_ >
 Default implementation of map concatenation. More...
 
struct  std_utils::ctk_concatenate< Enum_, CompileTimeKeys< Enum_, Keys1_... >, CompileTimeKeys< Enum_, Keys2_... > >
 Template specialization for CompileTimeKeys of same Enum-type. More...
 
struct  std_utils::ctk_insert_back< Enum_, Keys_, Key_ >
 Default implementation of back insertion of a key into keys. More...
 
struct  std_utils::ctk_insert_back< Enum_, CompileTimeKeys< Enum_, Keys_... >, CompileTimeKey< Enum_, key_enum, key_name, key_id > >
 Template specialization for CompileTimeKey of same Enum-type. More...
 
struct  std_utils::ctk_insert_front< Enum_, Keys_, Key_ >
 Default implementation of front insertion of a key into keys. More...
 
struct  std_utils::ctk_insert_front< Enum_, CompileTimeKeys< Enum_, Keys_... >, CompileTimeKey< Enum_, key_enum, key_name, key_id > >
 Template specialization for CompileTimeKey of same Enum-type. More...
 
struct  std_utils::ctk_erase< Enum_, Keys_, erase_key >
 Default implementation of deletion of a key in keys. More...
 
struct  std_utils::ctk_erase< Enum_, CompileTimeKeys< Enum_, Keys_... >, erase_key >
 Template specialization for CompileTimeKeys of same Enum-type (recursion termination) More...
 
struct  std_utils::ctk_erase< Enum_, CompileTimeKeys< Enum_, CompileTimeKey< Enum_, key_enum, key_name, key_id >, Keys_... >, erase_key >
 Template specialization for CompileTimeKeys of same Enum-type. More...
 
struct  std_utils::ctk_pop_front< Enum_, Keys_ >
 Default implementation of pop a key from front of keys. More...
 
struct  std_utils::ctk_pop_front< Enum_, CompileTimeKeys< Enum_, CompileTimeKey< Enum_, key_enum, key_name, key_id >, Keys_... > >
 Template specialization for CompileTimeKey of same Enum-type. More...
 
struct  std_utils::ctk_increment_ids< Enum_, Keys_, Increment_ >
 Default implementation of incrementing the ids of keys. More...
 
struct  std_utils::ctk_increment_ids< Enum_, CompileTimeKeys< Enum_ >, Increment_ >
 Template specialization for CompileTimeKey of same Enum-type (recursion termination) More...
 
struct  std_utils::ctk_increment_ids< Enum_, CompileTimeKeys< Enum_, CompileTimeKey< Enum_, key_enum, key_name, key_id >, Keys_... >, Increment_ >
 Template specialization for CompileTimeKey of same Enum-type. More...
 
struct  std_utils::ctk_pop_front_and_decrement< Enum_, Keys_ >
 Default implementation of popping first element and decrementing the ids of keys by 1. More...
 
struct  std_utils::ctk_pop_front_and_decrement< Enum_, CompileTimeKeys< Enum_, Keys_... > >
 Template specialization for CompileTimeKeys of same Enum-type. More...
 
struct  std_utils::ctk_transform< TransformedEnum_, Keys_, EnumMap_, IdOffset_ >
 Default implementation of transforming keys to another enum type. More...
 
struct  std_utils::ctk_transform< TransformedEnum_, CompileTimeKeys< Enum_ >, CompileTimeMap< Enum_, TransformedEnum_, KV_... >, IdOffset_ >
 Template specialization for CompileTimeKeys of same Enum-type (recursion termination) More...
 
struct  std_utils::ctk_transform< TransformedEnum_, CompileTimeKeys< Enum_, CompileTimeKey< Enum_, key_enum, key_name, key_id >, Keys_... >, CompileTimeMap< Enum_, TransformedEnum_, KV_... >, IdOffset_ >
 Template specialization for CompileTimeKeys of same Enum-type. More...
 
struct  std_utils::ctk_combine< Enum_, Keys1_, Keys2_, MapKeys1_, MapKeys2_ >
 Default implementation of transforming keys to another enum type. More...
 
struct  std_utils::ctk_combine< TransformedEnum_, CompileTimeKeys< Enum1_, Keys1_... >, CompileTimeKeys< Enum2_, Keys2_... >, CompileTimeMap< Enum1_, TransformedEnum_, KV1_... >, CompileTimeMap< Enum2_, TransformedEnum_, KV2_... > >
 Template specialization for CompileTimeKeys / CompileTimeMaps of matching enums. More...
 

Namespaces

 std_utils
 

Typedefs

template<typename Enum_ , typename Keys1_ , typename Keys2_ >
using std_utils::ctk_concatenate_t = typename ctk_concatenate< Enum_, Keys1_, Keys2_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ , typename Key_ >
using std_utils::ctk_insert_back_t = typename ctk_insert_back< Enum_, Keys_, Key_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ , typename Key_ >
using std_utils::ctk_insert_front_t = typename ctk_insert_front< Enum_, Keys_, Key_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ , Enum_ erase_key>
using std_utils::ctk_erase_t = typename ctk_erase< Enum_, Keys_, erase_key >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ >
using std_utils::ctk_pop_front_t = typename ctk_pop_front< Enum_, Keys_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ , int Increment_>
using std_utils::ctk_increment_ids_t = typename ctk_increment_ids< Enum_, Keys_, Increment_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys_ >
using std_utils::ctk_pop_front_and_decrement_t = typename ctk_pop_front_and_decrement< Enum_, Keys_ >::type
 Helper. More...
 
template<typename TransformedEnum_ , typename Keys_ , typename EnumMap_ , int IdOffset_ = 0>
using std_utils::ctk_transform_t = typename ctk_transform< TransformedEnum_, Keys_, EnumMap_, IdOffset_ >::type
 Helper. More...
 
template<typename Enum_ , typename Keys1_ , typename Keys2_ , typename MapKeys1_ , typename MapKeys2_ >
using std_utils::ctk_combine_t = typename ctk_combine< Enum_, Keys1_, Keys2_, MapKeys1_, MapKeys2_ >::type
 Helper. More...
 

Detailed Description

Author
Gabriel Hottiger
Date
Apr, 2018