Kigs Framework  Doc version 0.8
Open source multi purpose Rapid Application Development framework
maAny.h
2 
3 #include <any>
4 #include <optional>
5 
6 template<int notificationLevel>
7 class maAnyHeritage : public CoreModifiableAttributeData<std::any>
8 {
9  DECLARE_ATTRIBUTE_HERITAGE_NO_ASSIGN(maAnyHeritage, maAnyHeritage, std::any, CoreModifiable::ANY);
10 public:
11  virtual operator CurrentAttributeType() const
12  {
13  return mValue;
14  }
15 
16  template<typename T>
17  auto& operator=(const T& value)
18  {
19  mValue = value;
20  return *this;
21  }
22 
23  template<typename T>
24  std::optional<T> get()
25  {
26  try
27  {
28  return std::any_cast<T>(mValue);
29  }
30  catch (const std::bad_any_cast& e)
31  {
32  return {};
33  }
34  }
35 
36 
37 
38 };
39 
40 using maAny = maAnyHeritage<0>;
CoreModifiableAttribute.h
Base template class for CoreModifiable attributes managing data.