maliput
value.h File Reference
#include <memory>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include "maliput/drake/common/copyable_unique_ptr.h"
#include "maliput/drake/common/drake_copyable.h"
#include "maliput/drake/common/hash.h"
#include "maliput/drake/common/is_cloneable.h"
#include "maliput/drake/common/nice_type_name.h"
Include dependency graph for value.h:
This graph shows which files directly or indirectly include this file:

Classes

class  Value< T >
 A container class for an arbitrary type T (with some restrictions). More...
 
struct  ValueTraitsImpl< T, use_copy >
 
class  AbstractValue
 A fully type-erased container class. More...
 
struct  AbstractValue::Wrap
 
class  Value< T >
 A container class for an arbitrary type T (with some restrictions). More...
 
struct  TypeHasherHasNonTypeTemplateParameter< T, U >
 
struct  TypeHasherHasNonTypeTemplateParameter< T, typehasher_void_t< typename T::NonTypeTemplateParameter > >
 
struct  TypeHasher< T, bool >
 
struct  ParameterPackHasher< Args >
 
struct  ParameterPackHasher<>
 
struct  ParameterPackHasher< A, B... >
 
struct  TypeHasher< T< Args... >, false >
 
struct  ValueHasher< T, K >
 
struct  TypeHasher< T, true >
 
struct  IntPackHasher< Ns >
 
struct  IntPackHasher<>
 
struct  IntPackHasher< N, Ns... >
 
struct  TypeHasher< T< U, N, Ns... >, false >
 
struct  TypeHash< T >
 
struct  ReportUseOfTypeHash< T, hash >
 
struct  ReportUseOfTypeHash< T, 0 >
 
struct  ValueTraitsImpl< T, true >
 
struct  ValueTraitsImpl< T, false >
 

Namespaces

 maliput
 Code in this file is inspired by: https://github.com/RobotLocomotion/drake/blob/master/common/text_logging.h.
 
 maliput::drake
 
 maliput::drake::internal
 

Typedefs

template<typename T >
using ValueTraits = ValueTraitsImpl< T, std::is_copy_constructible_v< T > >
 
template<bool choose_copy, typename T , typename Arg1 , typename... Args>
using ValueForwardingCtorEnabled = typename std::enable_if_t< std::is_constructible_v< T, Arg1, Args... > &&!std::is_same_v< T, Arg1 > &&!std::is_same_v< T &, Arg1 > &&!std::is_fundamental_v< T > &&(choose_copy==std::is_copy_constructible_v< T >)>
 
template<typename T >
using remove_cvref_t = std::remove_cv_t< std::remove_reference_t< T > >
 
template<typename... >
using typehasher_void_t = void
 

Functions

constexpr bool hash_template_argument_from_pretty_func (const char *pretty, int which_argument, bool discard_nested, bool discard_cast, FNV1aHasher *result)
 
int ReportZeroHash (const std::type_info &detail)