22 struct CallableContainer;
55 Object opaqueCall(
const Object *inputArgs,
const size_t numArgs)
const;
62 size_t getNumArgs(
void)
const;
72 const std::type_info &type(
const int argNo)
const;
83 template <
typename ValueType>
84 Callable &bind(ValueType &&val,
const size_t argNo);
103 Callable &unbind(
const size_t argNo);
110 std::string toString(
void)
const;
112 #for $NARGS in range($MAX_ARGS)
113 template <
typename ReturnType,
typename ClassType, $expand('
typename A%d', $NARGS)>
115 Callable(ReturnType(ClassType::*fcn)($expand(
'A%d', $NARGS)));
118 template <
typename ReturnType,
typename ClassType, $expand('
typename A%d', $NARGS)>
119 Callable(ReturnType(ClassType::*fcn)($expand(
'A%d', $NARGS))
const);
122 template <
typename ReturnType, $expand('
typename A%d', $NARGS)>
123 Callable(ReturnType(*fcn)($expand(
'A%d', $NARGS)));
130 template <$expand('
typename A%d', $NARGS),
typename ReturnType,
typename ClassType>
131 static Callable make(ReturnType(ClassType::*fcn)($expand(
'A%d', $NARGS)));
138 template <$expand('
typename A%d', $NARGS),
typename ReturnType,
typename ClassType>
139 static Callable make(ReturnType(ClassType::*fcn)($expand(
'A%d', $NARGS))
const);
146 template <$expand('
typename A%d', $NARGS),
typename ReturnType>
147 static Callable make(ReturnType(*fcn)($expand(
'A%d', $NARGS)));
153 template <
typename ClassType, $expand('
typename A%d', $NARGS)>
162 template <
typename ClassType, $expand('
typename A%d', $NARGS)>
170 template <
typename ClassType, $expand('
typename A%d', $NARGS)>
171 static Callable factoryShared(
void);
175 std::vector<Object> _boundArgs;
176 std::shared_ptr<Detail::CallableContainer> _impl;
#define pothos_explicit
Definition: Config.hpp:85
#define POTHOS_API
Definition: Config.hpp:41
POTHOS_API bool operator==(const Callable &lhs, const Callable &rhs)
Definition: Callable.tmpl.hpp:30
Definition: CallInterface.tmpl.hpp:21
Definition: Object.hpp:55