hana_member_ptr_traits.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "common.h"
4 
5 namespace armarx::meta::cfg
6 {
7  template<class T>
8  struct hana_member_ptr_traits : std::false_type {};
9 
10  template<class T>
11  struct hana_member_ptr_traits<const T>
12  : hana_member_ptr_traits<T> {};
13 
14  template<class T>
15  struct hana_member_ptr_traits<const T&>
17 
18  template<class T>
21 
22  template<class T1, class T2>
23  struct hana_member_ptr_traits<boost::hana::tuple<T1, T2>> :
25  {};
26 
27  template <class CL, class MT, MT CL::* ptr>
28  struct hana_member_ptr_traits<hana::struct_detail::member_ptr<MT CL::*, ptr>>
29  : std::true_type
30  {
31  using class_t = CL;
32  using member_t = MT;
33  using pointer_t = MT CL::*;
34  static constexpr pointer_t pointer = ptr;
35 
36  template<template <class CL2, class MT2, MT2 CL2::*> class Templ>
37  using pass_to = Templ<CL, MT, pointer>;
38  };
39 }
40 
armarx::meta::cfg::hana_member_ptr_traits< hana::struct_detail::member_ptr< MT CL::*, ptr > >::pass_to
Templ< CL, MT, pointer > pass_to
Definition: hana_member_ptr_traits.h:37
boost
Definition: ApplicationOptions.h:37
armarx::meta::cfg::hana_member_ptr_traits
Definition: hana_member_ptr_traits.h:8
armarx::meta::cfg::hana_member_ptr_traits< hana::struct_detail::member_ptr< MT CL::*, ptr > >::pointer_t
MT CL::* pointer_t
Definition: hana_member_ptr_traits.h:33
armarx::meta::cfg
Definition: PluginCfgStruct.h:31
common.h
armarx::meta::cfg::hana_member_ptr_traits< hana::struct_detail::member_ptr< MT CL::*, ptr > >::member_t
MT member_t
Definition: hana_member_ptr_traits.h:32
T
float T
Definition: UnscentedKalmanFilterTest.cpp:35
armarx::meta::cfg::hana_member_ptr_traits< hana::struct_detail::member_ptr< MT CL::*, ptr > >::class_t
CL class_t
Definition: hana_member_ptr_traits.h:31