28 #ifndef __RTTR_METHOD_CONTAINER_BASE_H__
29 #define __RTTR_METHOD_CONTAINER_BASE_H__
53 class RTTR_API method_container_base :
public metadata_container
56 method_container_base(
const std::string& name,
const type decalaring_type);
58 virtual ~method_container_base();
60 std::string get_name()
const;
61 type get_declaring_type()
const;
62 std::string get_signature()
const;
64 virtual type get_return_type()
const = 0;
65 virtual bool is_static()
const = 0;
66 virtual std::vector<type> get_parameter_types()
const = 0;
67 virtual std::vector<bool> get_is_reference()
const = 0;
68 virtual std::vector<bool> get_is_const()
const = 0;
70 virtual variant invoke(detail::instance&
object)
const = 0;
71 virtual variant invoke(detail::instance&
object, detail::argument& arg1)
const = 0;
72 virtual variant invoke(detail::instance&
object, detail::argument& arg1, detail::argument& arg2)
const = 0;
73 virtual variant invoke(detail::instance&
object, detail::argument& arg1, detail::argument& arg2, detail::argument& arg3)
const = 0;
74 virtual variant invoke(detail::instance&
object, detail::argument& arg1, detail::argument& arg2, detail::argument& arg3,
75 detail::argument& arg4)
const = 0;
76 virtual variant invoke(detail::instance&
object, detail::argument& arg1, detail::argument& arg2, detail::argument& arg3,
77 detail::argument& arg4, detail::argument& arg5)
const = 0;
78 virtual variant invoke(detail::instance&
object, detail::argument& arg1, detail::argument& arg2, detail::argument& arg3,
79 detail::argument& arg4, detail::argument& arg5, detail::argument& arg6)
const = 0;
81 virtual variant invoke_variadic(detail::instance&
object, std::vector<detail::argument>& args)
const = 0;
84 const std::string _name;
85 const type _decalaring_type;
91 #endif // __RTTR_METHOD_CONTAINER_BASE_H__
#define RTTR_API
Definition: core_prerequisites.h:124