MUQ  0.4.3
AnyHelpers.h
Go to the documentation of this file.
1 #ifndef ANYHELPERS_H
2 #define ANYHELPERS_H
3 
4 #include <boost/any.hpp>
5 
6 #include "MUQ/config.h"
7 
8 namespace muq
9 {
10  namespace Utilities
11  {
33  class AnyCast
34  {
35  public:
36  AnyCast(boost::any& objIn) : obj(objIn){};
37 
38  //template<typename T>
39  //operator T(){ return boost::any_cast<T>(obj);};
40 
41  template<typename T>
42  operator T&(){ return boost::any_cast<T&>(obj);};
43 
44  private:
45  boost::any& obj;
46  };
47 
50  {
51  public:
52  AnyConstCast(boost::any const& objIn) : obj(objIn){};
53 
54  //template<typename T>
55  //operator T(){ return boost::any_cast<T>(obj);};
56 
57  template<typename T>
58  operator T const&(){ return boost::any_cast<T const&>(obj);};
59 
60 #if MUQ_ANYCAST_COMPILES==0
61  template<typename T>
62  operator T(){ return boost::any_cast<T const&>(obj);};
63 #endif
64 
65  private:
66  boost::any const& obj;
67  };
68  } // namespace Utilities
69 } // namespace muq
70 
71 #endif
Class for easily casting boost::any's in assignment operations.
Definition: AnyHelpers.h:34
AnyCast(boost::any &objIn)
Definition: AnyHelpers.h:36
boost::any const & obj
Definition: AnyHelpers.h:62
AnyConstCast(boost::any const &objIn)
Definition: AnyHelpers.h:52