Я новичок в lua сценариях. Попытка экспортировать некоторый существующий класс c ++ в lua, расширяемый дополнительными структурами и методами.
%module custom_matching
%include "std_vector.i"
%include "std_pair.i"
%inline %{
#include "Matching.h"
%}
%typemap(out) boost::optional<double> %{
if($1)
$result = *$1;
else {
$result = nil;
}
%}
namespace Matching{
class Matching {
public:
Matching(double someArg = 1e-4);
boost::optional<double> onMsg(double forwardDistance = 0.);
void setVerbose(bool verbose);
};
%extend Matching {
boost::optional<double> onPoseMsg(const Custom3dPoint &pose) {
std::cout << "onPoseMsg\n";
return boost::none;
}
}
struct Custom3dPoint {
double x, y, z;
};
}
Прежде всего я получил сообщение об ошибке: «Custom3dPoint» не был объявлен.
Также я хотел бы знать, будет ли обтекание boost :: option работать правильно в lua, и при создании экземпляра класса будут использоваться аргументы по умолчанию.
Swig 3.0