framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
base_types.hpp
Go to the documentation of this file.
1 // Copyright (C) 2013 iwg molw5
2 // For conditions of distribution and use, see copyright notice in COPYING
3 
13 #pragma once
14 
16 
17 namespace framework
18 {
19  namespace protocol_buffers
20  {
26  template <
27  typename Name,
28  typename Number,
29  typename Specification,
30  template <typename> class Implementation>
32  {
33  template <typename Derived>
34  struct parameters
35  {
36  using value_name = Name;
37  using value_number = Number;
39  using value_specification = Specification;
40  using derived = Derived;
41  using implementation = Implementation <parameters <Derived>>;
42  };
43 
44  template <typename Derived>
45  using type = Implementation <parameters <Derived>>;
46  };
47 
51  enum class e_constants
52  {
66  };
67 
74  template <typename Number, typename T>
76  {
77  };
78 
82  template <typename T>
83  using remove_reference_cv = typename std::remove_cv <typename std::remove_reference <T>::type>::type;
84  }
85 }