我在此之后创建了一个c ++类。
#include <string>
#include <vector>
namespace Test
{
typedef std::pair<int, int> Values;
class Configuration
{
public:
Configuration(std::string);
Configuration(const Configuration&);
~Configuration();
void setMinVal(int);
void setMaxVal(int);
void setVals(Values);
std::string getPath();
int getMinVal();
int getMaxVal();
Values getVals();
private:
std::string path;
int minVal;
int maxVal;
};
我在此之后制作了swig文件:
%module Test
%include <std_string.i>
%include <std_vector.i>
%include <std_pair.i>
%{
#include "Test.h"
%}
%template(Values) std::pair<int, int>;
namespace Test {
class Configuration
{
public:
Configuration(std::string);
~Configuration();
void setMinVal(int);
void setMaxVal(int);
void setVals(std::pair<int, int>);
std::string getPath();
int getMinVal();
int getMaxVal();
std::pair<int, int> getVals();
};
}
我运行swig命令行并在visual studio中编译。 但它发生了
错误C4703:可能未初始化的本地指针变量'p'使用
在这个包装行中:
value_type *p;
swig_type_info *descriptor = swig::type_info<value_type>();
res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR;
if (SWIG_IsOK(res) && val) *val = p;
在第4行。 我该如何解决? 感谢。