如何修复Swig和Python中的错误C4703?

时间:2017-03-29 09:33:05

标签: swig

我在此之后创建了一个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行。 我该如何解决? 感谢。

0 个答案:

没有答案