改进make函数的Swig-tcl包装
Improve the Swig-tcl wrapping of a make function
包装类似的构造函数时
struct A {
A(){}
void hello() {std::cout << "hellon";}
};
Swig tcl太棒了!事实上,在tcl中,我只能做到:
A a
a hello
然而,在某些情况下,对象a
的创建并不简单(即,我可能只想返回对堆上另一个对象的引用),并且必须通过如下的make函数:
A make(){ return A(); }
那么Swig-tcl的包装就变得一团糟:
set a [make]
$a hello
我想知道在使用make函数时,是否有一种方法可以恢复tcl脚本的初始清晰度。
我不认为它特别乱!只是第二种情况下的命令有一个您无法控制的名称,所以您将该名称保留在一个变量中。
您可以重命名对象命令或为其创建别名:
rename $a a
interp alias {} a {} $a
使用这两种技术后,您将获得一个名为a
的命令,可以对其调用方法。但是,在这两种情况下,如果您将对象作为参数传递给另一个SWIGged函数或方法,则需要原始名称。因此,我个人建议只使用变量中带有名称的版本。
您应该检查带有rename
的版本是否有效;有可能——尽管不太可能——它可能不会…
相关文章:
- 元组由 Swig 生成的 Python 包装器返回,用于C++向量
- 使用 Swig 在成员中包装具有互斥锁的 C++ 类时出现问题
- 包装C++函数以使用 SWIG 获取 Lua 字符串表
- 相同的枚举项在 SWIG > 2.0.1 中包装在不同类型的常量中
- 如何在 SWIG 中包装可变参数模板类的可变参数模板成员函数?
- SWIG:将枚举包装为 C#
- 将自定义代码添加到Swig包装器中
- Swig C++ python 包装器文件解释
- swig:std/multimap.i似乎打破了TCL包装
- SWIG:包装 std::map<key 时编译器错误,val *>
- 使用 SWIG 将 c++ 包装到 java 不满意的链接错误: HeaderJNI.new_Test()J.
- 如何让SWIG在包装包含向量的模板类时应用模板
- 改进make函数的Swig-tcl包装
- Swig(Tcl):我可以在执行c++程序时调用Swig函数吗
- numpyarrayobject.h 在 Windows 中编译 SWIG python 包装器时未被 MinGW
- 在Mac OS X上用Swig将C++包装成Python
- 使用 SWIG 将C++包装 <vector> 为 python NumPy 数组
- typedef不适用于SWIG (python包装c++代码)
- Swig+tcl+c++(内存管理)
- 在 SWIG 中包装C++结构模板