Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SWIG C++-&燃气轮机;Java-typemapping拥有自己的string类,就像std::string一样_Java_String_Swig - Fatal编程技术网

SWIG C++-&燃气轮机;Java-typemapping拥有自己的string类,就像std::string一样

SWIG C++-&燃气轮机;Java-typemapping拥有自己的string类,就像std::string一样,java,string,swig,Java,String,Swig,我正在努力使SWIG内置的std_string.I适应我自己的string类 我所做的: 假设我自己的string类名为my::space::string 将粘贴的std_string.i复制到我自己的.i文件中并替换 namespace std{bynamespace my{namespace space{ 小写stringbystring \include由\include 问题是,我得到了一个语法错误,我不明白,这是没有帮助的: wrapmystring.i:90: Error:

我正在努力使SWIG内置的
std_string.I
适应我自己的string类

我所做的:

  • 假设我自己的string类名为my::space::string
  • 将粘贴的
    std_string.i
    复制到我自己的
    .i
    文件中并替换
    • namespace std{
      by
      namespace my{namespace space{
    • 小写
      string
      by
      string
    • \include
      \include
问题是,我得到了一个语法错误,我不明白,这是没有帮助的:

wrapmystring.i:90: Error: Syntax error in input(1).
这是
常量字符串&
类型映射部分的这一行:

%typemap(directorout,warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const String &
%{ if(!$input) {
     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
     return $null;
   }
   const char *$1_pstr = (const char *)jenv->GetStringUTFChars($input, 0);
   if (!$1_pstr) return $null;
   /* possible thread/reentrant code problem */
   static $*1_ltype $1_str;
   $1_str = $1_pstr; <=================== syntax error points here
   $result = &$1_str;
   jenv->ReleaseStringUTFChars($input, $1_pstr); %}
%typemap(directorout,warning=SWIGWARN\u typemap\u THREAD\u UNSAFE\u MSG)常量字符串&
%{if(!$input){
SWIG_JavaThrowException(jenv,SWIG_JavaNullPointerException,“空字符串”);
返回$null;
}
常量字符*$1\pstr=(常量字符*)jenv->GetStringUTFChars($input,0);
如果(!$1pstr)返回$null;
/*可能的线程/可重入代码问题*/
静态$*1_ltype$1_str;
$1_-str=$1pstr;ReleaseStringUTFChars($input,$1pstr);%}
知道为什么它在
std_string.i
中工作而不在我自己的类中工作吗