Lodestar
An integrated real-time control package in C++
DynamicData.hpp
1 //
2 // Created by Hamza El-Kebir on 12/22/21.
3 //
4 
5 #ifndef LODESTAR_DYNAMICDATA_HPP
6 #define LODESTAR_DYNAMICDATA_HPP
7 
8 #include "DynamicDataTypes.hpp"
9 #include "Any.hpp"
10 
11 namespace ls {
12  namespace aux {
13  struct DynamicData {
15 
16  template <typename TType>
17  DynamicData &operator=(const TType &x)
18  {
19  data.template operator=(x);
20  return *this;
21  }
22  };
23 
24  static std::ostream& operator<<(std::ostream& os, const DynamicData dd)
25  {
26  switch (dd.data.tag()) {
27  default: break;
28  case DynamicDataTypes::Types::intType:
29  os << dd.data.as<int>();
30  break;
31  case DynamicDataTypes::Types::boolType:
32  os << dd.data.as<bool>();
33  break;
34  case DynamicDataTypes::Types::floatType:
35  os << dd.data.as<float>();
36  break;
37  case DynamicDataTypes::Types::doubleType:
38  os << dd.data.as<double>();
39  break;
40  case DynamicDataTypes::Types::longType:
41  os << dd.data.as<long>();
42  break;
43  case DynamicDataTypes::Types::stringType:
44  os << dd.data.as<std::string>();
45  break;
46  }
47 
48  return os;
49  }
50  }
51 }
52 
53 #endif //LODESTAR_DYNAMICDATA_HPP
ls
Main Lodestar code.
Definition: BilinearTransformation.hpp:12
ls::aux::Any< int, bool, float, double, long, char, std::string >
ls::aux::DynamicData
Definition: DynamicData.hpp:13