mirror of https://github.com/swig/swig.git
33 lines
731 B
OpenEdge ABL
33 lines
731 B
OpenEdge ABL
%module cpp11_std_function
|
|
|
|
%header %{
|
|
#include <functional>
|
|
#include <string>
|
|
#include <stdexcept>
|
|
%}
|
|
|
|
%include <std_string.i>
|
|
%include <std_function.i>
|
|
%include <exception.i>
|
|
|
|
%inline %{
|
|
std::function<bool(int, const std::string &)> pass_checker(int pass) {
|
|
return [pass](int passcode, const std::string &name) -> bool {
|
|
return passcode == pass && name == "Petka";
|
|
};
|
|
}
|
|
%}
|
|
|
|
%template(cpp_lambda) std::function<bool(int, const std::string &)>;
|
|
|
|
|
|
// Expose a wrapper function to call the functor
|
|
%inline %{
|
|
template <typename RET, typename... ARGS>
|
|
RET call_std_function(std::function<RET(ARGS...)> fn, ARGS ...args) {
|
|
return fn(args...);
|
|
}
|
|
%}
|
|
|
|
%template(call_function) call_std_function<bool, int, const std::string &>;
|