PageRenderTime 93ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/rel-1-3-26/SWIG/Doc/Manual/Contents.html

#
HTML | 1285 lines | 1160 code | 65 blank | 60 comment | 0 complexity | cee36afe214ad4a13f0083ab974a19a4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0

Large files files are truncated, but you can click here to view the full file

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE>SWIG Users Manual</TITLE>
  5. </HEAD>
  6. <BODY BGCOLOR="#ffffff">
  7. <H1>SWIG Users Manual</H1>
  8. <p>
  9. <h3><a href="Preface.html#Preface">1 Preface</a></h3>
  10. <!-- INDEX -->
  11. <div class="sectiontoc">
  12. <ul>
  13. <li><a href="Preface.html#Preface_nn2">Introduction</a>
  14. <li><a href="Preface.html#Preface_nn3">Special Introduction for Version 1.3</a>
  15. <li><a href="Preface.html#Preface_nn4">SWIG Versions</a>
  16. <li><a href="Preface.html#Preface_nn5">SWIG resources</a>
  17. <li><a href="Preface.html#Preface_nn6">Prerequisites</a>
  18. <li><a href="Preface.html#Preface_nn7">Organization of this manual</a>
  19. <li><a href="Preface.html#Preface_nn8">How to avoid reading the manual</a>
  20. <li><a href="Preface.html#Preface_nn9">Backwards Compatibility</a>
  21. <li><a href="Preface.html#Preface_nn10">Credits</a>
  22. <li><a href="Preface.html#Preface_nn11">Bug reports</a>
  23. </ul>
  24. </div>
  25. <!-- INDEX -->
  26. <h3><a href="Introduction.html#Introduction">2 Introduction</a></h3>
  27. <!-- INDEX -->
  28. <div class="sectiontoc">
  29. <ul>
  30. <li><a href="Introduction.html#Introduction_nn2">What is SWIG?</a>
  31. <li><a href="Introduction.html#Introduction_nn3">Why use SWIG?</a>
  32. <li><a href="Introduction.html#Introduction_nn4">A SWIG example</a>
  33. <ul>
  34. <li><a href="Introduction.html#Introduction_nn5">SWIG interface file</a>
  35. <li><a href="Introduction.html#Introduction_nn6">The swig command</a>
  36. <li><a href="Introduction.html#Introduction_nn7">Building a Perl5 module</a>
  37. <li><a href="Introduction.html#Introduction_nn8">Building a Python module</a>
  38. <li><a href="Introduction.html#Introduction_nn9">Shortcuts</a>
  39. </ul>
  40. <li><a href="Introduction.html#Introduction_nn10">Supported C/C++ language features</a>
  41. <li><a href="Introduction.html#Introduction_nn11">Non-intrusive interface building</a>
  42. <li><a href="Introduction.html#Introduction_build_system">Incorporating SWIG into a build system</a>
  43. <li><a href="Introduction.html#Introduction_nn12">Hands off code generation</a>
  44. <li><a href="Introduction.html#Introduction_nn13">SWIG and freedom</a>
  45. </ul>
  46. </div>
  47. <!-- INDEX -->
  48. <h3><a href="Windows.html#Windows">3 Getting started on Windows </a></h3>
  49. <!-- INDEX -->
  50. <div class="sectiontoc">
  51. <ul>
  52. <li><a href="Windows.html#Windows_nn2">Installation on Windows</a>
  53. <ul>
  54. <li><a href="Windows.html#Windows_nn3">Windows Executable</a>
  55. </ul>
  56. <li><a href="Windows.html#examples">SWIG Windows Examples</a>
  57. <ul>
  58. <li><a href="Windows.html#Windows_nn5">Instructions for using the Examples with Visual Studio</a>
  59. <ul>
  60. <li><a href="Windows.html#Windows_nn6">Python</a>
  61. <li><a href="Windows.html#Windows_nn7">TCL</a>
  62. <li><a href="Windows.html#Windows_nn8">Perl</a>
  63. <li><a href="Windows.html#Windows_nn9">Java</a>
  64. <li><a href="Windows.html#Windows_nn10">Ruby</a>
  65. <li><a href="Windows.html#Windows_nn11">C#</a>
  66. </ul>
  67. <li><a href="Windows.html#Windows_nn12">Instructions for using the Examples with other compilers</a>
  68. </ul>
  69. <li><a href="Windows.html#Windows_nn13">SWIG on Cygwin and MinGW</a>
  70. <ul>
  71. <li><a href="Windows.html#swig_exe">Building swig.exe on Windows</a>
  72. <ul>
  73. <li><a href="Windows.html#Windows_nn15">Building swig.exe using MinGW and MSYS</a>
  74. <li><a href="Windows.html#Windows_nn16">Building swig.exe using Cygwin</a>
  75. <li><a href="Windows.html#Windows_nn17">Building swig.exe alternatives</a>
  76. </ul>
  77. <li><a href="Windows.html#examples_cygwin">Running the examples on Windows using Cygwin</a>
  78. </ul>
  79. </ul>
  80. </div>
  81. <!-- INDEX -->
  82. <h3><a href="Scripting.html#Scripting">4 Scripting Languages</a></h3>
  83. <!-- INDEX -->
  84. <div class="sectiontoc">
  85. <ul>
  86. <li><a href="Scripting.html#Scripting_nn2">The two language view of the world</a>
  87. <li><a href="Scripting.html#Scripting_nn3">How does a scripting language talk to C?</a>
  88. <ul>
  89. <li><a href="Scripting.html#Scripting_nn4">Wrapper functions</a>
  90. <li><a href="Scripting.html#Scripting_nn5">Variable linking</a>
  91. <li><a href="Scripting.html#Scripting_nn6">Constants</a>
  92. <li><a href="Scripting.html#Scripting_nn7">Structures and classes</a>
  93. <li><a href="Scripting.html#Scripting_nn8">Proxy classes</a>
  94. </ul>
  95. <li><a href="Scripting.html#Scripting_nn9">Building scripting language extensions</a>
  96. <ul>
  97. <li><a href="Scripting.html#Scripting_nn10">Shared libraries and dynamic loading</a>
  98. <li><a href="Scripting.html#Scripting_nn11">Linking with shared libraries</a>
  99. <li><a href="Scripting.html#Scripting_nn12">Static linking</a>
  100. </ul>
  101. </ul>
  102. </div>
  103. <!-- INDEX -->
  104. <h3><a href="SWIG.html#SWIG">5 SWIG Basics</a></h3>
  105. <!-- INDEX -->
  106. <div class="sectiontoc">
  107. <ul>
  108. <li><a href="SWIG.html#SWIG_nn2">Running SWIG</a>
  109. <ul>
  110. <li><a href="SWIG.html#SWIG_nn3">Input format</a>
  111. <li><a href="SWIG.html#output">SWIG Output</a>
  112. <li><a href="SWIG.html#SWIG_nn5">Comments</a>
  113. <li><a href="SWIG.html#SWIG_nn6">C Preprocessor</a>
  114. <li><a href="SWIG.html#SWIG_nn7">SWIG Directives</a>
  115. <li><a href="SWIG.html#SWIG_nn8">Parser Limitations</a>
  116. </ul>
  117. <li><a href="SWIG.html#SWIG_nn9">Wrapping Simple C Declarations</a>
  118. <ul>
  119. <li><a href="SWIG.html#SWIG_nn10">Basic Type Handling</a>
  120. <li><a href="SWIG.html#SWIG_nn11">Global Variables</a>
  121. <li><a href="SWIG.html#SWIG_nn12">Constants</a>
  122. <li><a href="SWIG.html#SWIG_nn13">A brief word about <tt>const</tt></a>
  123. <li><a href="SWIG.html#SWIG_nn14">A cautionary tale of <tt>char *</tt></a>
  124. </ul>
  125. <li><a href="SWIG.html#SWIG_nn15">Pointers and complex objects</a>
  126. <ul>
  127. <li><a href="SWIG.html#SWIG_nn16">Simple pointers</a>
  128. <li><a href="SWIG.html#SWIG_nn17">Run time pointer type checking</a>
  129. <li><a href="SWIG.html#SWIG_nn18">Derived types, structs, and classes</a>
  130. <li><a href="SWIG.html#SWIG_nn19">Undefined datatypes</a>
  131. <li><a href="SWIG.html#SWIG_nn20">Typedef</a>
  132. </ul>
  133. <li><a href="SWIG.html#SWIG_nn21">Other Practicalities</a>
  134. <ul>
  135. <li><a href="SWIG.html#SWIG_nn22">Passing structures by value</a>
  136. <li><a href="SWIG.html#SWIG_nn23">Return by value</a>
  137. <li><a href="SWIG.html#SWIG_nn24">Linking to structure variables</a>
  138. <li><a href="SWIG.html#SWIG_nn25">Linking to <tt>char *</tt></a>
  139. <li><a href="SWIG.html#SWIG_nn26">Arrays</a>
  140. <li><a href="SWIG.html#SWIG_readonly_variables">Creating read-only variables</a>
  141. <li><a href="SWIG.html#SWIG_nn28">Renaming and ignoring declarations</a>
  142. <li><a href="SWIG.html#SWIG_default_args">Default/optional arguments</a>
  143. <li><a href="SWIG.html#SWIG_nn30">Pointers to functions and callbacks</a>
  144. </ul>
  145. <li><a href="SWIG.html#SWIG_nn31">Structures and unions</a>
  146. <ul>
  147. <li><a href="SWIG.html#SWIG_nn32">Typedef and structures</a>
  148. <li><a href="SWIG.html#SWIG_nn33">Character strings and structures</a>
  149. <li><a href="SWIG.html#SWIG_nn34">Array members</a>
  150. <li><a href="SWIG.html#SWIG_nn35">Structure data members</a>
  151. <li><a href="SWIG.html#SWIG_nn36">C constructors and destructors </a>
  152. <li><a href="SWIG.html#SWIG_adding_member_functions">Adding member functions to C structures</a>
  153. <li><a href="SWIG.html#SWIG_nn38">Nested structures</a>
  154. <li><a href="SWIG.html#SWIG_nn39">Other things to note about structure wrapping</a>
  155. </ul>
  156. <li><a href="SWIG.html#SWIG_nn40">Code Insertion</a>
  157. <ul>
  158. <li><a href="SWIG.html#SWIG_nn41">The output of SWIG</a>
  159. <li><a href="SWIG.html#SWIG_nn42">Code insertion blocks</a>
  160. <li><a href="SWIG.html#SWIG_nn43">Inlined code blocks</a>
  161. <li><a href="SWIG.html#SWIG_nn44">Initialization blocks</a>
  162. </ul>
  163. <li><a href="SWIG.html#SWIG_nn45">An Interface Building Strategy</a>
  164. <ul>
  165. <li><a href="SWIG.html#SWIG_nn46">Preparing a C program for SWIG</a>
  166. <li><a href="SWIG.html#SWIG_nn47">The SWIG interface file</a>
  167. <li><a href="SWIG.html#SWIG_nn48">Why use separate interface files?</a>
  168. <li><a href="SWIG.html#SWIG_nn49">Getting the right header files</a>
  169. <li><a href="SWIG.html#SWIG_nn50">What to do with main()</a>
  170. </ul>
  171. </ul>
  172. </div>
  173. <!-- INDEX -->
  174. <h3><a href="SWIGPlus.html#SWIGPlus">6 SWIG and C++</a></h3>
  175. <!-- INDEX -->
  176. <div class="sectiontoc">
  177. <ul>
  178. <li><a href="SWIGPlus.html#SWIGPlus_nn2">Comments on C++ Wrapping</a>
  179. <li><a href="SWIGPlus.html#SWIGPlus_nn3">Approach</a>
  180. <li><a href="SWIGPlus.html#SWIGPlus_nn4">Supported C++ features</a>
  181. <li><a href="SWIGPlus.html#SWIGPlus_nn5">Command line options and compilation</a>
  182. <li><a href="SWIGPlus.html#SWIGPlus_nn6">Simple C++ wrapping</a>
  183. <ul>
  184. <li><a href="SWIGPlus.html#SWIGPlus_nn7">Constructors and destructors</a>
  185. <li><a href="SWIGPlus.html#SWIGPlus_nn8">Default constructors</a>
  186. <li><a href="SWIGPlus.html#SWIGPlus_nn9">When constructor wrappers aren't created</a>
  187. <li><a href="SWIGPlus.html#SWIGPlus_nn10">Copy constructors</a>
  188. <li><a href="SWIGPlus.html#SWIGPlus_nn11">Member functions</a>
  189. <li><a href="SWIGPlus.html#SWIGPlus_nn12">Static members</a>
  190. <li><a href="SWIGPlus.html#SWIGPlus_nn13">Member data</a>
  191. </ul>
  192. <li><a href="SWIGPlus.html#SWIGPlus_default_args">Default arguments</a>
  193. <li><a href="SWIGPlus.html#SWIGPlus_nn15">Protection</a>
  194. <li><a href="SWIGPlus.html#SWIGPlus_nn16">Enums and constants</a>
  195. <li><a href="SWIGPlus.html#SWIGPlus_nn17">Friends</a>
  196. <li><a href="SWIGPlus.html#SWIGPlus_nn18">References and pointers</a>
  197. <li><a href="SWIGPlus.html#SWIGPlus_nn19">Pass and return by value</a>
  198. <li><a href="SWIGPlus.html#SWIGPlus_nn20">Inheritance</a>
  199. <li><a href="SWIGPlus.html#SWIGPlus_nn21">A brief discussion of multiple inheritance, pointers, and type checking</a>
  200. <li><a href="SWIGPlus.html#SWIGPlus_nn22">Renaming</a>
  201. <li><a href="SWIGPlus.html#SWIGPlus_overloaded_methods">Wrapping Overloaded Functions and Methods</a>
  202. <ul>
  203. <li><a href="SWIGPlus.html#SWIGPlus_nn24">Dispatch function generation</a>
  204. <li><a href="SWIGPlus.html#SWIGPlus_nn25">Ambiguity in Overloading</a>
  205. <li><a href="SWIGPlus.html#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a>
  206. <li><a href="SWIGPlus.html#SWIGPlus_nn27">Comments on overloading</a>
  207. </ul>
  208. <li><a href="SWIGPlus.html#SWIGPlus_nn28">Wrapping overloaded operators</a>
  209. <li><a href="SWIGPlus.html#SWIGPlus_nn29">Class extension</a>
  210. <li><a href="SWIGPlus.html#SWIGPlus_nn30">Templates</a>
  211. <li><a href="SWIGPlus.html#SWIGPlus_nn31">Namespaces</a>
  212. <li><a href="SWIGPlus.html#SWIGPlus_exception_specifications">Exception specifications</a>
  213. <li><a href="SWIGPlus.html#SWIGPlus_nn33">Pointers to Members</a>
  214. <li><a href="SWIGPlus.html#SWIGPlus_nn34">Smart pointers and operator-&gt;()</a>
  215. <li><a href="SWIGPlus.html#SWIGPlus_nn35">Using declarations and inheritance</a>
  216. <li><a href="SWIGPlus.html#SWIGPlus_nn36">Partial class definitions</a>
  217. <li><a href="SWIGPlus.html#SWIGPlus_nn37">A brief rant about const-correctness</a>
  218. <li><a href="SWIGPlus.html#SWIGPlus_nn38">Proxy classes</a>
  219. <ul>
  220. <li><a href="SWIGPlus.html#SWIGPlus_nn39">Construction of proxy classes</a>
  221. <li><a href="SWIGPlus.html#SWIGPlus_nn40">Resource management in proxies</a>
  222. <li><a href="SWIGPlus.html#SWIGPlus_nn41">Language specific details</a>
  223. </ul>
  224. <li><a href="SWIGPlus.html#SWIGPlus_nn42">Where to go for more information</a>
  225. </ul>
  226. </div>
  227. <!-- INDEX -->
  228. <h3><a href="Preprocessor.html#Preprocessor">7 Preprocessing</a></h3>
  229. <!-- INDEX -->
  230. <div class="sectiontoc">
  231. <ul>
  232. <li><a href="Preprocessor.html#Preprocessor_nn2">File inclusion</a>
  233. <li><a href="Preprocessor.html#Preprocessor_nn3">File imports</a>
  234. <li><a href="Preprocessor.html#Preprocessor_nn4">Conditional Compilation</a>
  235. <li><a href="Preprocessor.html#Preprocessor_nn5">Macro Expansion</a>
  236. <li><a href="Preprocessor.html#Preprocessor_nn6">SWIG Macros</a>
  237. <li><a href="Preprocessor.html#Preprocessor_nn7">C99 and GNU Extensions</a>
  238. <li><a href="Preprocessor.html#Preprocessor_nn8">Preprocessing and %{ ... %} blocks</a>
  239. <li><a href="Preprocessor.html#Preprocessor_nn9">Preprocessing and { ... }</a>
  240. <li><a href="Preprocessor.html#Preprocessor_nn10">Viewing preprocessor output</a>
  241. </ul>
  242. </div>
  243. <!-- INDEX -->
  244. <h3><a href="Library.html#Library">8 SWIG library</a></h3>
  245. <!-- INDEX -->
  246. <div class="sectiontoc">
  247. <ul>
  248. <li><a href="Library.html#Library_nn2">The %include directive and library search path</a>
  249. <li><a href="Library.html#Library_nn3">C Arrays and Pointers</a>
  250. <ul>
  251. <li><a href="Library.html#Library_nn4">cpointer.i</a>
  252. <li><a href="Library.html#Library_nn5">carrays.i</a>
  253. <li><a href="Library.html#Library_nn6">cmalloc.i</a>
  254. <li><a href="Library.html#Library_nn7">cdata.i</a>
  255. </ul>
  256. <li><a href="Library.html#Library_nn8">C String Handling</a>
  257. <ul>
  258. <li><a href="Library.html#Library_nn9">Default string handling</a>
  259. <li><a href="Library.html#Library_nn10">Passing binary data</a>
  260. <li><a href="Library.html#Library_nn11">Using %newobject to release memory</a>
  261. <li><a href="Library.html#Library_nn12">cstring.i</a>
  262. </ul>
  263. <li><a href="Library.html#Library_stl_cpp_library">STL/C++ Library</a>
  264. <ul>
  265. <li><a href="Library.html#Library_nn14">std_string.i</a>
  266. <li><a href="Library.html#Library_nn15">std_vector.i</a>
  267. <li><a href="Library.html#Library_stl_exceptions">STL exceptions</a>
  268. </ul>
  269. <li><a href="Library.html#Library_nn16">Utility Libraries</a>
  270. <ul>
  271. <li><a href="Library.html#Library_nn17">exception.i</a>
  272. </ul>
  273. </ul>
  274. </div>
  275. <!-- INDEX -->
  276. <h3><a href="Arguments.html#Arguments">9 Argument Handling</a></h3>
  277. <!-- INDEX -->
  278. <div class="sectiontoc">
  279. <ul>
  280. <li><a href="Arguments.html#Arguments_nn2">The typemaps.i library</a>
  281. <ul>
  282. <li><a href="Arguments.html#Arguments_nn3">Introduction</a>
  283. <li><a href="Arguments.html#Arguments_nn4">Input parameters</a>
  284. <li><a href="Arguments.html#Arguments_nn5">Output parameters</a>
  285. <li><a href="Arguments.html#Arguments_nn6">Input/Output parameters</a>
  286. <li><a href="Arguments.html#Arguments_nn7">Using different names</a>
  287. </ul>
  288. <li><a href="Arguments.html#Arguments_nn8">Applying constraints to input values</a>
  289. <ul>
  290. <li><a href="Arguments.html#Arguments_nn9">Simple constraint example</a>
  291. <li><a href="Arguments.html#Arguments_nn10">Constraint methods</a>
  292. <li><a href="Arguments.html#Arguments_nn11">Applying constraints to new datatypes</a>
  293. </ul>
  294. </ul>
  295. </div>
  296. <!-- INDEX -->
  297. <h3><a href="Typemaps.html#Typemaps">10 Typemaps</a></h3>
  298. <!-- INDEX -->
  299. <div class="sectiontoc">
  300. <ul>
  301. <li><a href="Typemaps.html#Typemaps_nn2">Introduction</a>
  302. <ul>
  303. <li><a href="Typemaps.html#Typemaps_nn3">Type conversion</a>
  304. <li><a href="Typemaps.html#Typemaps_nn4">Typemaps</a>
  305. <li><a href="Typemaps.html#Typemaps_nn5">Pattern matching</a>
  306. <li><a href="Typemaps.html#Typemaps_nn6">Reusing typemaps</a>
  307. <li><a href="Typemaps.html#Typemaps_nn7">What can be done with typemaps?</a>
  308. <li><a href="Typemaps.html#Typemaps_nn8">What can't be done with typemaps?</a>
  309. <li><a href="Typemaps.html#Typemaps_nn9">The rest of this chapter</a>
  310. </ul>
  311. <li><a href="Typemaps.html#Typemaps_nn10">Typemap specifications</a>
  312. <ul>
  313. <li><a href="Typemaps.html#Typemaps_nn11">Defining a typemap</a>
  314. <li><a href="Typemaps.html#Typemaps_nn12">Typemap scope</a>
  315. <li><a href="Typemaps.html#Typemaps_nn13">Copying a typemap</a>
  316. <li><a href="Typemaps.html#Typemaps_nn14">Deleting a typemap</a>
  317. <li><a href="Typemaps.html#Typemaps_nn15">Placement of typemaps</a>
  318. </ul>
  319. <li><a href="Typemaps.html#Typemaps_nn16">Pattern matching rules</a>
  320. <ul>
  321. <li><a href="Typemaps.html#Typemaps_nn17">Basic matching rules</a>
  322. <li><a href="Typemaps.html#Typemaps_nn18">Typedef reductions</a>
  323. <li><a href="Typemaps.html#Typemaps_nn19">Default typemaps</a>
  324. <li><a href="Typemaps.html#Typemaps_mixed_default">Mixed default typemaps</a>
  325. <li><a href="Typemaps.html#Typemaps_nn20">Multi-arguments typemaps</a>
  326. </ul>
  327. <li><a href="Typemaps.html#Typemaps_nn21">Code generation rules</a>
  328. <ul>
  329. <li><a href="Typemaps.html#Typemaps_nn22">Scope</a>
  330. <li><a href="Typemaps.html#Typemaps_nn23">Declaring new local variables</a>
  331. <li><a href="Typemaps.html#Typemaps_nn24">Special variables</a>
  332. </ul>
  333. <li><a href="Typemaps.html#Typemaps_nn25">Common typemap methods</a>
  334. <ul>
  335. <li><a href="Typemaps.html#Typemaps_nn26">"in" typemap</a>
  336. <li><a href="Typemaps.html#Typemaps_nn27">"typecheck" typemap</a>
  337. <li><a href="Typemaps.html#Typemaps_nn28">"out" typemap</a>
  338. <li><a href="Typemaps.html#Typemaps_nn29">"arginit" typemap</a>
  339. <li><a href="Typemaps.html#Typemaps_nn30">"default" typemap</a>
  340. <li><a href="Typemaps.html#Typemaps_nn31">"check" typemap</a>
  341. <li><a href="Typemaps.html#Typemaps_nn32">"argout" typemap</a>
  342. <li><a href="Typemaps.html#Typemaps_nn33">"freearg" typemap</a>
  343. <li><a href="Typemaps.html#Typemaps_nn34">"newfree" typemap</a>
  344. <li><a href="Typemaps.html#Typemaps_nn35">"memberin" typemap</a>
  345. <li><a href="Typemaps.html#Typemaps_nn36">"varin" typemap</a>
  346. <li><a href="Typemaps.html#Typemaps_nn37">"varout" typemap</a>
  347. <li><a href="Typemaps.html#throws_typemap">"throws" typemap</a>
  348. </ul>
  349. <li><a href="Typemaps.html#Typemaps_nn39">Some typemap examples</a>
  350. <ul>
  351. <li><a href="Typemaps.html#Typemaps_nn40">Typemaps for arrays</a>
  352. <li><a href="Typemaps.html#Typemaps_nn41">Implementing constraints with typemaps</a>
  353. </ul>
  354. <li><a href="Typemaps.html#Typemaps_nn42">Multi-argument typemaps</a>
  355. <li><a href="Typemaps.html#runtime_type_checker">The run-time type checker</a>
  356. <ul>
  357. <li><a href="Typemaps.html#Typemaps_nn45">Implementation</a>
  358. <li><a href="Typemaps.html#Typemaps_nn46">Usage</a>
  359. </ul>
  360. <li><a href="Typemaps.html#Typemaps_overloading">Typemaps and overloading</a>
  361. <li><a href="Typemaps.html#Typemaps_nn48">More about <tt>%apply</tt> and <tt>%clear</tt></a>
  362. <li><a href="Typemaps.html#Typemaps_nn49">Reducing wrapper code size</a>
  363. <li><a href="Typemaps.html#Typemaps_nn47">Passing data between typemaps</a>
  364. <li><a href="Typemaps.html#Typemaps_nn51">Where to go for more information?</a>
  365. </ul>
  366. </div>
  367. <!-- INDEX -->
  368. <h3><a href="Customization.html#Customization">11 Customization Features</a></h3>
  369. <!-- INDEX -->
  370. <div class="sectiontoc">
  371. <ul>
  372. <li><a href="Customization.html#exception">Exception handling with %exception</a>
  373. <ul>
  374. <li><a href="Customization.html#Customization_nn3">Handling exceptions in C code</a>
  375. <li><a href="Customization.html#Customization_nn4">Exception handling with longjmp()</a>
  376. <li><a href="Customization.html#Customization_nn5">Handling C++ exceptions</a>
  377. <li><a href="Customization.html#Customization_nn6">Defining different exception handlers</a>
  378. <li><a href="Customization.html#Customization_nn7">Using The SWIG exception library</a>
  379. </ul>
  380. <li><a href="Customization.html#ownership">Object ownership and %newobject</a>
  381. <li><a href="Customization.html#features">Features and the %feature directive</a>
  382. <ul>
  383. <li><a href="Customization.html#Customization_feature_flags">Feature flags</a>
  384. <li><a href="Customization.html#Customization_clearing_features">Clearing features</a>
  385. <li><a href="Customization.html#Customization_features_default_args">Features and default arguments</a>
  386. <li><a href="Customization.html#features_example">Feature example</a>
  387. </ul>
  388. </ul>
  389. </div>
  390. <!-- INDEX -->
  391. <h3><a href="Contract.html#Contract">12 Contracts</a></h3>
  392. <!-- INDEX -->
  393. <div class="sectiontoc">
  394. <ul>
  395. <li><a href="Contract.html#Contract_nn2">The %contract directive</a>
  396. <li><a href="Contract.html#Contract_nn3">%contract and classes</a>
  397. <li><a href="Contract.html#Contract_nn4">Constant aggregation and %aggregate_check</a>
  398. <li><a href="Contract.html#Contract_nn5">Notes</a>
  399. </ul>
  400. </div>
  401. <!-- INDEX -->
  402. <h3><a href="Varargs.html#Varargs">13 Variable Length Arguments</a></h3>
  403. <!-- INDEX -->
  404. <div class="sectiontoc">
  405. <ul>
  406. <li><a href="Varargs.html#Varargs_nn2">Introduction</a>
  407. <li><a href="Varargs.html#Varargs_nn3">The Problem</a>
  408. <li><a href="Varargs.html#Varargs_nn4">Default varargs support</a>
  409. <li><a href="Varargs.html#Varargs_nn5">Argument replacement using %varargs</a>
  410. <li><a href="Varargs.html#Varargs_nn6">Varargs and typemaps</a>
  411. <li><a href="Varargs.html#Varargs_nn7">Varargs wrapping with libffi</a>
  412. <li><a href="Varargs.html#Varargs_nn8">Wrapping of va_list</a>
  413. <li><a href="Varargs.html#Varargs_nn9">C++ Issues</a>
  414. <li><a href="Varargs.html#Varargs_nn10">Discussion</a>
  415. </ul>
  416. </div>
  417. <!-- INDEX -->
  418. <h3><a href="Warnings.html#Warnings">14 Warning Messages</a></h3>
  419. <!-- INDEX -->
  420. <div class="sectiontoc">
  421. <ul>
  422. <li><a href="Warnings.html#Warnings_nn2">Introduction</a>
  423. <li><a href="Warnings.html#Warnings_nn3">Warning message suppression</a>
  424. <li><a href="Warnings.html#Warnings_nn4">Enabling additional warnings</a>
  425. <li><a href="Warnings.html#Warnings_nn5">Issuing a warning message</a>
  426. <li><a href="Warnings.html#Warnings_nn6">Commentary</a>
  427. <li><a href="Warnings.html#Warnings_nn7">Warnings as errors</a>
  428. <li><a href="Warnings.html#Warnings_nn8">Message output format</a>
  429. <li><a href="Warnings.html#Warnings_nn9">Warning number reference</a>
  430. <ul>
  431. <li><a href="Warnings.html#Warnings_nn10">Deprecated features (100-199)</a>
  432. <li><a href="Warnings.html#Warnings_nn11">Preprocessor (200-299)</a>
  433. <li><a href="Warnings.html#Warnings_nn12">C/C++ Parser (300-399)</a>
  434. <li><a href="Warnings.html#Warnings_nn13">Types and typemaps (400-499) </a>
  435. <li><a href="Warnings.html#Warnings_nn14">Code generation (500-599)</a>
  436. <li><a href="Warnings.html#Warnings_nn15">Language module specific (800-899) </a>
  437. <li><a href="Warnings.html#Warnings_nn16">User defined (900-999)</a>
  438. </ul>
  439. <li><a href="Warnings.html#Warnings_nn17">History</a>
  440. </ul>
  441. </div>
  442. <!-- INDEX -->
  443. <h3><a href="Modules.html#Modules">15 Working with Modules</a></h3>
  444. <!-- INDEX -->
  445. <div class="sectiontoc">
  446. <ul>
  447. <li><a href="Modules.html#Modules_nn2">The SWIG runtime code</a>
  448. <li><a href="Modules.html#external_run_time">External access to the runtime</a>
  449. <li><a href="Modules.html#Modules_nn4">A word of caution about static libraries</a>
  450. <li><a href="Modules.html#Modules_nn5">References</a>
  451. <li><a href="Modules.html#Modules_nn6">Reducing the wrapper file size</a>
  452. </ul>
  453. </div>
  454. <!-- INDEX -->
  455. <h3><a href="CSharp.html#CSharp">16 SWIG and C#</a></h3>
  456. <!-- INDEX -->
  457. <div class="sectiontoc">
  458. <ul>
  459. <li><a href="CSharp.html#csharp_introduction">Introduction</a>
  460. <li><a href="CSharp.html#csharp_differences_java">Differences to the Java module</a>
  461. <li><a href="CSharp.html#csharp_exceptions">C# Exceptions</a>
  462. <ul>
  463. <li><a href="CSharp.html#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a>
  464. <li><a href="CSharp.html#csharp_exception_example_percent_exception">C# exception example using %exception</a>
  465. <li><a href="CSharp.html#csharp_exception_example_exception_specifications">C# exception example using exception specifications</a>
  466. <li><a href="CSharp.html#csharp_custom_application_exception">Custom C# ApplicationException example</a>
  467. </ul>
  468. </ul>
  469. </div>
  470. <!-- INDEX -->
  471. <h3><a href="Chicken.html#Chicken">17 SWIG and Chicken</a></h3>
  472. <!-- INDEX -->
  473. <div class="sectiontoc">
  474. <ul>
  475. <li><a href="Chicken.html#Chicken_nn2">Preliminaries</a>
  476. <ul>
  477. <li><a href="Chicken.html#Chicken_nn3">Running SWIG in C mode</a>
  478. <li><a href="Chicken.html#Chicken_nn4">Running SWIG in C++ mode</a>
  479. </ul>
  480. <li><a href="Chicken.html#Chicken_nn5">Code Generation</a>
  481. <ul>
  482. <li><a href="Chicken.html#Chicken_nn6">Naming Conventions</a>
  483. <li><a href="Chicken.html#Chicken_nn7">Modules</a>
  484. <li><a href="Chicken.html#Chicken_nn8">Constants and Variables</a>
  485. <li><a href="Chicken.html#Chicken_nn9">Functions</a>
  486. <li><a href="Chicken.html#Chicken_nn10">Exceptions</a>
  487. </ul>
  488. <li><a href="Chicken.html#Chicken_nn11">TinyCLOS</a>
  489. <li><a href="Chicken.html#Chicken_nn12">Linkage</a>
  490. <ul>
  491. <li><a href="Chicken.html#Chicken_nn13">Static binary or shared library linked at compile time</a>
  492. <li><a href="Chicken.html#Chicken_nn14">Building chicken extension libraries</a>
  493. <li><a href="Chicken.html#Chicken_nn15">Linking multiple SWIG modules with TinyCLOS</a>
  494. </ul>
  495. <li><a href="Chicken.html#Chicken_nn16">Typemaps</a>
  496. <li><a href="Chicken.html#Chicken_nn17">Pointers</a>
  497. <ul>
  498. <li><a href="Chicken.html#collection">Garbage collection</a>
  499. </ul>
  500. <li><a href="Chicken.html#Chicken_nn18">Unsupported features and known problems</a>
  501. </ul>
  502. </div>
  503. <!-- INDEX -->
  504. <h3><a href="Guile.html#Guile">18 SWIG and Guile</a></h3>
  505. <!-- INDEX -->
  506. <div class="sectiontoc">
  507. <ul>
  508. <li><a href="Guile.html#Guile_nn2">Meaning of "Module"</a>
  509. <li><a href="Guile.html#Guile_nn3">Using the SCM or GH Guile API</a>
  510. <li><a href="Guile.html#Guile_nn4">Linkage</a>
  511. <ul>
  512. <li><a href="Guile.html#Guile_nn5">Simple Linkage</a>
  513. <li><a href="Guile.html#Guile_nn6">Passive Linkage</a>
  514. <li><a href="Guile.html#Guile_nn7">Native Guile Module Linkage</a>
  515. <li><a href="Guile.html#Guile_nn8">Old Auto-Loading Guile Module Linkage</a>
  516. <li><a href="Guile.html#Guile_nn9">Hobbit4D Linkage</a>
  517. </ul>
  518. <li><a href="Guile.html#Guile_nn10">Underscore Folding</a>
  519. <li><a href="Guile.html#Guile_nn11">Typemaps</a>
  520. <li><a href="Guile.html#Guile_nn12">Representation of pointers as smobs</a>
  521. <ul>
  522. <li><a href="Guile.html#Guile_nn13">GH Smobs</a>
  523. <li><a href="Guile.html#Guile_nn14">SCM Smobs</a>
  524. <li><a href="Guile.html#Guile_nn15">Garbage Collection</a>
  525. </ul>
  526. <li><a href="Guile.html#Guile_nn16">Exception Handling</a>
  527. <li><a href="Guile.html#Guile_nn17">Procedure documentation</a>
  528. <li><a href="Guile.html#Guile_nn18">Procedures with setters</a>
  529. <li><a href="Guile.html#Guile_nn19">GOOPS Proxy Classes</a>
  530. <ul>
  531. <li><a href="Guile.html#Guile_nn20">Naming Issues</a>
  532. <li><a href="Guile.html#Guile_nn21">Linking</a>
  533. </ul>
  534. </ul>
  535. </div>
  536. <!-- INDEX -->
  537. <h3><a href="Java.html#Java">19 SWIG and Java</a></h3>
  538. <!-- INDEX -->
  539. <div class="sectiontoc">
  540. <ul>
  541. <li><a href="Java.html#java_overview">Overview</a>
  542. <li><a href="Java.html#java_preliminaries">Preliminaries</a>
  543. <ul>
  544. <li><a href="Java.html#running_swig">Running SWIG</a>
  545. <li><a href="Java.html#java_commandline">Additional Commandline Options</a>
  546. <li><a href="Java.html#getting_right_headers">Getting the right header files</a>
  547. <li><a href="Java.html#compiling_dynamic">Compiling a dynamic module</a>
  548. <li><a href="Java.html#using_module">Using your module</a>
  549. <li><a href="Java.html#dynamic_linking_problems">Dynamic linking problems</a>
  550. <li><a href="Java.html#compilation_problems_cpp">Compilation problems and compiling with C++</a>
  551. <li><a href="Java.html#building_windows">Building on Windows</a>
  552. <ul>
  553. <li><a href="Java.html#visual_studio">Running SWIG from Visual Studio</a>
  554. <li><a href="Java.html#nmake">Using NMAKE</a>
  555. </ul>
  556. </ul>
  557. <li><a href="Java.html#java_basic_tour">A tour of basic C/C++ wrapping</a>
  558. <ul>
  559. <li><a href="Java.html#module_packages_classes">Modules, packages and generated Java classes</a>
  560. <li><a href="Java.html#functions">Functions</a>
  561. <li><a href="Java.html#global_variables">Global variables</a>
  562. <li><a href="Java.html#constants">Constants</a>
  563. <li><a href="Java.html#enumerations">Enumerations</a>
  564. <ul>
  565. <li><a href="Java.html#anonymous_enums">Anonymous enums</a>
  566. <li><a href="Java.html#typesafe_enums">Typesafe enums</a>
  567. <li><a href="Java.html#proper_enums">Proper Java enums</a>
  568. <li><a href="Java.html#typeunsafe_enums">Type unsafe enums</a>
  569. <li><a href="Java.html#simple_enums">Simple enums</a>
  570. </ul>
  571. <li><a href="Java.html#pointers">Pointers</a>
  572. <li><a href="Java.html#structures">Structures</a>
  573. <li><a href="Java.html#classes">C++ classes</a>
  574. <li><a href="Java.html#inheritance">C++ inheritance</a>
  575. <li><a href="Java.html#pointers_refs_arrays">Pointers, references, arrays and pass by value</a>
  576. <ul>
  577. <li><a href="Java.html#null_pointers">Null pointers</a>
  578. </ul>
  579. <li><a href="Java.html#overloaded_functions">C++ overloaded functions</a>
  580. <li><a href="Java.html#java_default_arguments">C++ default arguments</a>
  581. <li><a href="Java.html#namespaces">C++ namespaces</a>
  582. <li><a href="Java.html#templates">C++ templates</a>
  583. <li><a href="Java.html#smart_pointers">C++ Smart Pointers</a>
  584. </ul>
  585. <li><a href="Java.html#further_details">Further details on the generated Java classes</a>
  586. <ul>
  587. <li><a href="Java.html#imclass">The intermediary JNI class</a>
  588. <ul>
  589. <li><a href="Java.html#imclass_pragmas">The intermediary JNI class pragmas</a>
  590. </ul>
  591. <li><a href="Java.html#java_module_class">The Java module class</a>
  592. <ul>
  593. <li><a href="Java.html#module_class_pragmas">The Java module class pragmas</a>
  594. </ul>
  595. <li><a href="Java.html#java_proxy_classes">Java proxy classes</a>
  596. <ul>
  597. <li><a href="Java.html#memory_management">Memory management</a>
  598. <li><a href="Java.html#inheritance_mirroring">Inheritance</a>
  599. <li><a href="Java.html#proxy_classes_gc">Proxy classes and garbage collection</a>
  600. </ul>
  601. <li><a href="Java.html#type_wrapper_classes">Type wrapper classes</a>
  602. <li><a href="Java.html#enum_classes">Enum classes</a>
  603. <ul>
  604. <li><a href="Java.html#typesafe_enums_classes">Typesafe enum classes</a>
  605. <li><a href="Java.html#proper_enums_classes">Proper Java enum classes</a>
  606. <li><a href="Java.html#typeunsafe_enums_classes">Type unsafe enum classes</a>
  607. </ul>
  608. </ul>
  609. <li><a href="Java.html#java_directors">Cross language polymorphism using directors (experimental)</a>
  610. <ul>
  611. <li><a href="Java.html#java_enabling_directors">Enabling directors</a>
  612. <li><a href="Java.html#java_directors_classes">Director classes</a>
  613. <li><a href="Java.html#java_directors_overhead">Overhead and code bloat</a>
  614. <li><a href="Java.html#java_directors_example">Simple directors example</a>
  615. </ul>
  616. <li><a href="Java.html#common_customization">Common customization features</a>
  617. <ul>
  618. <li><a href="Java.html#helper_functions">C/C++ helper functions</a>
  619. <li><a href="Java.html#class_extension">Class extension with %extend</a>
  620. <li><a href="Java.html#exception_handling">Exception handling with %exception and %javaexception</a>
  621. <li><a href="Java.html#method_access">Method access with %javamethodmodifiers</a>
  622. </ul>
  623. <li><a href="Java.html#tips_techniques">Tips and techniques</a>
  624. <ul>
  625. <li><a href="Java.html#input_output_parameters">Input and output parameters using primitive pointers and references</a>
  626. <li><a href="Java.html#simple_pointers">Simple pointers</a>
  627. <li><a href="Java.html#c_arrays">Wrapping C arrays with Java arrays</a>
  628. <li><a href="Java.html#unbounded_c_arrays">Unbounded C Arrays</a>
  629. </ul>
  630. <li><a href="Java.html#java_typemaps">Java typemaps</a>
  631. <ul>
  632. <li><a href="Java.html#default_primitive_type_mappings">Default primitive type mappings</a>
  633. <li><a href="Java.html#jvm64">Sixty four bit JVMs</a>
  634. <li><a href="Java.html#what_is_typemap">What is a typemap?</a>
  635. <li><a href="Java.html#typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a>
  636. <li><a href="Java.html#typemap_attributes">Java typemap attributes</a>
  637. <li><a href="Java.html#special_variables">Java special variables</a>
  638. <li><a href="Java.html#typemaps_for_c_and_c++">Typemaps for both C and C++ compilation</a>
  639. <li><a href="Java.html#java_code_typemaps">Java code typemaps</a>
  640. <li><a href="Java.html#java_directors_typemaps">Director specific typemaps</a>
  641. </ul>
  642. <li><a href="Java.html#typemap_examples">Typemap Examples</a>
  643. <ul>
  644. <li><a href="Java.html#simpler_enum_classes">Simpler Java enums for enums without initializers</a>
  645. <li><a href="Java.html#exception_typemap">Handling C++ exception specifications as Java exceptions</a>
  646. <li><a href="Java.html#nan_exception_typemap">NaN Exception - exception handling for a particular type</a>
  647. <li><a href="Java.html#converting_java_string_arrays">Converting Java String arrays to char ** </a>
  648. <li><a href="Java.html#expanding_java_object">Expanding a Java object to multiple arguments</a>
  649. <li><a href="Java.html#using_typemaps_return_arguments">Using typemaps to return arguments</a>
  650. <li><a href="Java.html#adding_downcasts">Adding Java downcasts to polymorphic return types</a>
  651. <li><a href="Java.html#adding_equals_method">Adding an equals method to the Java classes</a>
  652. <li><a href="Java.html#void_pointers">Void pointers and a common Java base class</a>
  653. <li><a href="Java.html#struct_pointer_pointer">Struct pointer to pointer</a>
  654. </ul>
  655. <li><a href="Java.html#java_directors_faq">Living with Java Directors</a>
  656. <li><a href="Java.html#odds_ends">Odds and ends</a>
  657. <ul>
  658. <li><a href="Java.html#javadoc_comments">JavaDoc comments</a>
  659. <li><a href="Java.html#functional_interface">Functional interface without proxy classes</a>
  660. <li><a href="Java.html#using_own_jni_functions">Using your own JNI functions</a>
  661. <li><a href="Java.html#performance">Performance concerns and hints</a>
  662. </ul>
  663. <li><a href="Java.html#java_examples">Examples</a>
  664. </ul>
  665. </div>
  666. <!-- INDEX -->
  667. <h3><a href="Modula3.html#Modula3">20 SWIG and Modula-3</a></h3>
  668. <!-- INDEX -->
  669. <div class="sectiontoc">
  670. <ul>
  671. <li><a href="Modula3.html#modula3_overview">Overview</a>
  672. <ul>
  673. <li><a href="Modula3.html#whyscripting">Why not scripting ?</a>
  674. <li><a href="Modula3.html#whymodula3">Why Modula-3 ?</a>
  675. <li><a href="Modula3.html#whycpp">Why C / C++ ?</a>
  676. <li><a href="Modula3.html#whyswig">Why SWIG ?</a>
  677. </ul>
  678. <li><a href="Modula3.html#conception">Conception</a>
  679. <ul>
  680. <li><a href="Modula3.html#cinterface">Interfaces to C libraries</a>
  681. <li><a href="Modula3.html#cppinterface">Interfaces to C++ libraries</a>
  682. </ul>
  683. <li><a href="Modula3.html#preliminaries">Preliminaries</a>
  684. <ul>
  685. <li><a href="Modula3.html#compilers">Compilers</a>
  686. <li><a href="Modula3.html#commandline">Additional Commandline Options</a>
  687. </ul>
  688. <li><a href="Modula3.html#modula3_typemaps">Modula-3 typemaps</a>
  689. <ul>
  690. <li><a href="Modula3.html#inoutparam">Inputs and outputs</a>
  691. <li><a href="Modula3.html#ordinals">Subranges, Enumerations, Sets</a>
  692. <li><a href="Modula3.html#class">Objects</a>
  693. <li><a href="Modula3.html#imports">Imports</a>
  694. <li><a href="Modula3.html#exceptions">Exceptions</a>
  695. <li><a href="Modula3.html#typemap_example">Example</a>
  696. </ul>
  697. <li><a href="Modula3.html#hints">More hints to the generator</a>
  698. <ul>
  699. <li><a href="Modula3.html#features">Features</a>
  700. <li><a href="Modula3.html#pragmas">Pragmas</a>
  701. </ul>
  702. <li><a href="Modula3.html#remarks">Remarks</a>
  703. </ul>
  704. </div>
  705. <!-- INDEX -->
  706. <h3><a href="Mzscheme.html#Mzscheme">21 SWIG and MzScheme</a></h3>
  707. <!-- INDEX -->
  708. <div class="sectiontoc">
  709. <ul>
  710. <li><a href="Mzscheme.html#MzScheme_nn2">Creating native MzScheme structures</a>
  711. </ul>
  712. </div>
  713. <!-- INDEX -->
  714. <h3><a href="Ocaml.html#Ocaml">22 SWIG and Ocaml</a></h3>
  715. <!-- INDEX -->
  716. <div class="sectiontoc">
  717. <ul>
  718. <li><a href="Ocaml.html#Ocaml_nn2">Preliminaries</a>
  719. <ul>
  720. <li><a href="Ocaml.html#Ocaml_nn3">Running SWIG</a>
  721. <li><a href="Ocaml.html#Ocaml_nn4">Compiling the code</a>
  722. <li><a href="Ocaml.html#Ocaml_nn5">The camlp4 module</a>
  723. <li><a href="Ocaml.html#Ocaml_nn6">Using your module</a>
  724. <li><a href="Ocaml.html#Ocaml_nn7">Compilation problems and compiling with C++</a>
  725. </ul>
  726. <li><a href="Ocaml.html#Ocaml_nn8">The low-level Ocaml/C interface</a>
  727. <ul>
  728. <li><a href="Ocaml.html#Ocaml_nn9">The generated module</a>
  729. <li><a href="Ocaml.html#Ocaml_nn10">Enums</a>
  730. <ul>
  731. <li><a href="Ocaml.html#Ocaml_nn11">Enum typing in Ocaml</a>
  732. </ul>
  733. <li><a href="Ocaml.html#Ocaml_nn12">Arrays</a>
  734. <ul>
  735. <li><a href="Ocaml.html#Ocaml_nn13">Simple types of bounded arrays</a>
  736. <li><a href="Ocaml.html#Ocaml_nn14">Complex and unbounded arrays</a>
  737. <li><a href="Ocaml.html#Ocaml_nn15">Using an object</a>
  738. <li><a href="Ocaml.html#Ocaml_nn16">Example typemap for a function taking float * and int</a>
  739. </ul>
  740. <li><a href="Ocaml.html#Ocaml_nn17">C++ Classes</a>
  741. <ul>
  742. <li><a href="Ocaml.html#Ocaml_nn18">STL vector and string Example</a>
  743. <li><a href="Ocaml.html#Ocaml_nn19">C++ Class Example</a>
  744. <li><a href="Ocaml.html#Ocaml_nn20">Compiling the example</a>
  745. <li><a href="Ocaml.html#Ocaml_nn21">Sample Session</a>
  746. </ul>
  747. <li><a href="Ocaml.html#Ocaml_nn22">Director Classes</a>
  748. <ul>
  749. <li><a href="Ocaml.html#Ocaml_nn23">Director Introduction</a>
  750. <li><a href="Ocaml.html#Ocaml_nn24">Overriding Methods in Ocaml</a>
  751. <li><a href="Ocaml.html#Ocaml_nn25">Director Usage Example</a>
  752. <li><a href="Ocaml.html#Ocaml_nn26">Creating director objects</a>
  753. <li><a href="Ocaml.html#Ocaml_nn27">Typemaps for directors, <tt>directorin, directorout, directorargout</tt></a>
  754. <li><a href="Ocaml.html#Ocaml_nn28"><tt>directorin</tt> typemap</a>
  755. <li><a href="Ocaml.html#Ocaml_nn29"><tt>directorout</tt> typemap</a>
  756. <li><a href="Ocaml.html#Ocaml_nn30"><tt>directorargout</tt> typemap</a>
  757. </ul>
  758. <li><a href="Ocaml.html#Ocaml_nn31">Exceptions</a>
  759. </ul>
  760. </ul>
  761. </div>
  762. <!-- INDEX -->
  763. <h3><a href="Perl5.html#Perl5">23 SWIG and Perl5</a></h3>
  764. <!-- INDEX -->
  765. <div class="sectiontoc">
  766. <ul>
  767. <li><a href="Perl5.html#Perl5_nn2">Overview</a>
  768. <li><a href="Perl5.html#Perl5_nn3">Preliminaries</a>
  769. <ul>
  770. <li><a href="Perl5.html#Perl5_nn4">Getting the right header files</a>
  771. <li><a href="Perl5.html#Perl5_nn5">Compiling a dynamic module</a>
  772. <li><a href="Perl5.html#Perl5_nn6">Building a dynamic module with MakeMaker</a>
  773. <li><a href="Perl5.html#Perl5_nn7">Building a static version of Perl</a>
  774. <li><a href="Perl5.html#Perl5_nn8">Using the module</a>
  775. <li><a href="Perl5.html#Perl5_nn9">Compilation problems and compiling with C++</a>
  776. <li><a href="Perl5.html#Perl5_nn10">Compiling for 64-bit platforms</a>
  777. </ul>
  778. <li><a href="Perl5.html#Perl5_nn11">Building Perl Extensions under Windows</a>
  779. <ul>
  780. <li><a href="Perl5.html#Perl5_nn12">Running SWIG from Developer Studio</a>
  781. <li><a href="Perl5.html#Perl5_nn13">Using other compilers</a>
  782. </ul>
  783. <li><a href="Perl5.html#Perl5_nn14">The low-level interface</a>
  784. <ul>
  785. <li><a href="Perl5.html#Perl5_nn15">Functions</a>
  786. <li><a href="Perl5.html#Perl5_nn16">Global variables</a>
  787. <li><a href="Perl5.html#Perl5_nn17">Constants</a>
  788. <li><a href="Perl5.html#Perl5_nn18">Pointers</a>
  789. <li><a href="Perl5.html#Perl5_nn19">Structures</a>
  790. <li><a href="Perl5.html#Perl5_nn20">C++ classes</a>
  791. <li><a href="Perl5.html#Perl5_nn21">C++ classes and type-checking</a>
  792. <li><a href="Perl5.html#Perl5_nn22">C++ overloaded functions</a>
  793. <li><a href="Perl5.html#Perl5_nn23">Operators</a>
  794. <li><a href="Perl5.html#Perl5_nn24">Modules and packages</a>
  795. </ul>
  796. <li><a href="Perl5.html#Perl5_nn25">Input and output parameters</a>
  797. <li><a href="Perl5.html#Perl5_nn26">Exception handling </a>
  798. <li><a href="Perl5.html#Perl5_nn27">Remapping datatypes with typemaps</a>
  799. <ul>
  800. <li><a href="Perl5.html#Perl5_nn28">A simple typemap example</a>
  801. <li><a href="Perl5.html#Perl5_nn29">Perl5 typemaps</a>
  802. <li><a href="Perl5.html#Perl5_nn30">Typemap variables</a>
  803. <li><a href="Perl5.html#Perl5_nn31">Useful functions</a>
  804. </ul>
  805. <li><a href="Perl5.html#Perl5_nn32">Typemap Examples</a>
  806. <ul>
  807. <li><a href="Perl5.html#Perl5_nn33">Converting a Perl5 array to a char ** </a>
  808. <li><a href="Perl5.html#Perl5_nn34">Return values </a>
  809. <li><a href="Perl5.html#Perl5_nn35">Returning values from arguments</a>
  810. <li><a href="Perl5.html#Perl5_nn36">Accessing array structure members</a>
  811. <li><a href="Perl5.html#Perl5_nn37">Turning Perl references into C pointers</a>
  812. <li><a href="Perl5.html#Perl5_nn38">Pointer handling</a>
  813. </ul>
  814. <li><a href="Perl5.html#Perl5_nn39">Proxy classes</a>
  815. <ul>
  816. <li><a href="Perl5.html#Perl5_nn40">Preliminaries</a>
  817. <li><a href="Perl5.html#Perl5_nn41">Structure and class wrappers</a>
  818. <li><a href="Perl5.html#Perl5_nn42">Object Ownership</a>
  819. <li><a href="Perl5.html#Perl5_nn43">Nested Objects</a>
  820. <li><a href="Perl5.html#Perl5_nn44">Proxy Functions</a>
  821. <li><a href="Perl5.html#Perl5_nn45">Inheritance</a>
  822. <li><a href="Perl5.html#Perl5_nn46">Modifying the proxy methods</a>
  823. </ul>
  824. </ul>
  825. </div>
  826. <!-- INDEX -->
  827. <h3><a href="Php.html#Php">24 SWIG and PHP4</a></h3>
  828. <!-- INDEX -->
  829. <div class="sectiontoc">
  830. <ul>
  831. <li><a href="Php.html#Php_nn1">Generating PHP4 Extensions</a>
  832. <ul>
  833. <li><a href="Php.html#Php_nn1_1">Building a loadable extension</a>
  834. <li><a href="Php.html#Php_nn1_2">Building extensions into PHP</a>
  835. <li><a href="Php.html#Php_nn1_3">Using PHP4 Extensions</a>
  836. </ul>
  837. <li><a href="Php.html#Php_nn2">Basic PHP4 interface</a>
  838. <ul>
  839. <li><a href="Php.html#Php_nn2_1">Constants</a>
  840. <li><a href="Php.html#Php_nn2_2">Global Variables</a>
  841. <li><a href="Php.html#Php_nn2_3">Functions</a>
  842. <li><a href="Php.html#Php_nn2_4">Overloading</a>
  843. <li><a href="Php.html#Php_nn2_5">Pointers and References</a>
  844. <li><a href="Php.html#Php_nn2_6">Structures and C++ classes</a>
  845. <ul>
  846. <li><a href="Php.html#Php_nn2_6_1">Using <tt>-noproxy</tt></a>
  847. <li><a href="Php.html#Php_nn2_6_2">Constructors and Destructors</a>
  848. <li><a href="Php.html#Php_nn2_6_3">Static Member Variables</a>
  849. <li><a href="Php.html#Php_nn2_6_4">Static Member Functions</a>
  850. </ul>
  851. <li><a href="Php.html#Php_nn2_7">PHP4 Pragmas, Startup and Shutdown code</a>
  852. </ul>
  853. </ul>
  854. </div>
  855. <!-- INDEX -->
  856. <h3><a href="Pike.html#Pike">25 SWIG and Pike</a></h3>
  857. <!-- INDEX -->
  858. <div class="sectiontoc">
  859. <ul>
  860. <li><a href="Pike.html#Pike_nn2">Preliminaries</a>
  861. <ul>
  862. <li><a href="Pike.html#Pike_nn3">Running SWIG</a>
  863. <li><a href="Pike.html#Pike_nn4">Getting the right header files</a>
  864. <li><a href="Pike.html#Pike_nn5">Using your module</a>
  865. </ul>
  866. <li><a href="Pike.html#Pike_nn6">Basic C/C++ Mapping</a>
  867. <ul>
  868. <li><a href="Pike.html#Pike_nn7">Modules</a>
  869. <li><a href="Pike.html#Pike_nn8">Functions</a>
  870. <li><a href="Pike.html#Pike_nn9">Global variables</a>
  871. <li><a href="Pike.html#Pike_nn10">Constants and enumerated types</a>
  872. <li><a href="Pike.html#Pike_nn11">Constructors and Destructors</a>
  873. <li><a href="Pike.html#Pike_nn12">Static Members</a>
  874. </ul>
  875. </ul>
  876. </div>
  877. <!-- INDEX -->
  878. <h3><a href="Python.html#Python">26 SWIG and Python</a></h3>
  879. <!-- INDEX -->
  880. <div class="sectiontoc">
  881. <ul>
  882. <li><a href="Python.html#Python_nn2">Overview</a>
  883. <li><a href="Python.html#Python_nn3">Preliminaries</a>
  884. <ul>
  885. <li><a href="Python.html#Python_nn4">Running SWIG</a>
  886. <li><a href="Python.html#Python_nn5">Getting the right header files</a>
  887. <li><a href="Python.html#Python_nn6">Compiling a dynamic module</a>
  888. <li><a href="Python.html#Python_nn7">Using distutils</a>
  889. <li><a href="Python.html#Python_nn8">Static linking</a>
  890. <li><a href="Python.html#Python_nn9">Using your module</a>
  891. <li><a href="Python.html#Python_nn10">Compilation of C++ extensions</a>
  892. <li><a href="Python.html#Python_nn11">Compiling for 64-bit platforms</a>
  893. <li><a href="Python.html#Python_nn12">Building Python Extensions under Windows</a>
  894. </ul>
  895. <li><a href="Python.html#Python_nn13">A tour of basic C/C++ wrapping</a>
  896. <ul>
  897. <li><a href="Python.html#Python_nn14">Modules</a>
  898. <li><a href="Python.html#Python_nn15">Functions</a>
  899. <li><a href="Python.html#Python_nn16">Global variables</a>
  900. <li><a href="Python.html#Python_nn17">Constants and enums</a>
  901. <li><a href="Python.html#Python_nn18">Pointers</a>
  902. <li><a href="Python.html#Python_nn19">Structures</a>
  903. <li><a href="Python.html#Python_nn20">C++ classes</a>
  904. <li><a href="Python.html#Python_nn21">C++ inheritance</a>
  905. <li><a href="Python.html#Python_nn22">Pointers, references, values, and arrays</a>
  906. <li><a href="Python.html#Python_nn23">C++ overloaded functions</a>
  907. <li><a href="Python.html#Python_nn24">C++ operators</a>
  908. <li><a href="Python.html#Python_nn25">C++ namespaces</a>
  909. <li><a href="Python.html#Python_nn26">C++ templates</a>
  910. <li><a href="Python.html#Python_nn27">C++ Smart Pointers</a>
  911. <li><a href="Python.html#Python_nn27a">C++ Reference Counted Objects (ref/unref)</a>
  912. </ul>
  913. <li><a href="Python.html#Python_nn28">Further details on the Python class interface</a>
  914. <ul>
  915. <li><a href="Python.html#Python_nn29">Proxy classes</a>
  916. <li><a href="Python.html#Python_nn30">Memory management</a>
  917. <li><a href="Python.html#Python_nn31">Python 2.2 and classic classes</a>
  918. </ul>
  919. <li><a href="Python.html#directors">Cross language polymorphism</a>
  920. <ul>
  921. <li><a href="Python.html#Python_nn33">Enabling directors</a>
  922. <li><a href="Python.html#Python_nn34">Director classes</a>
  923. <li><a href="Python.html#Python_nn35">Ownership and object destruction</a>
  924. <li><a href="Python.html#Python_nn36">Exception unrolling</a>
  925. <li><a href="Python.html#Python_nn37">Overhead and code bloat</a>
  926. <li><a href="Python.html#Python_nn38">Typemaps</a>
  927. <li><a href="Python.html#Python_nn39">Miscellaneous</a>
  928. </ul>
  929. <li><a href="Python.html#Python_nn40">Common customization features</a>
  930. <ul>
  931. <li><a href="Python.html#Python_nn41">C/C++ helper functions</a>
  932. <li><a href="Python.html#Python_nn42">Adding additional Python code</a>
  933. <li><a href="Python.html#Python_nn43">Class extension with %extend</a>
  934. <li><a href="Python.html#Python_nn44">Exception handling with %exception</a>
  935. </ul>
  936. <li><a href="Python.html#Python_nn45">Tips and techniques</a>
  937. <ul>
  938. <li><a href="Python.html#Python_nn46">Input and output parameters</a>
  939. <li><a href="Python.html#Python_nn47">Simple pointers</a>
  940. <li><a href="Python.html#Python_nn48">Unbounded C Arrays</a>
  941. <li><a href="Python.html#Python_nn49">String handling</a>
  942. <li><a href="Python.html#Python_nn50">Arrays</a>
  943. <li><a href="Python.html#Python_nn51">String arrays</a>
  944. <li><a href="Python.html#Python_nn52">STL wrappers</a>
  945. </ul>
  946. <li><a href="Python.html#Python_nn53">Typemaps</a>
  947. <ul>
  948. <li><a href="Python.html#Python_nn54">What is a typemap?</a>
  949. <li><a href="Python.html#Python_nn55">Python typemaps</a>
  950. <li><a href="Python.html#Python_nn56">Typemap variables</a>
  951. <li><a href="Python.html#Python_nn57">Useful Python Functions</a>
  952. </ul>
  953. <li><a href="Python.html#Python_nn58">Typemap Examples</a>
  954. <ul>
  955. <li><a href="Python.html#Python_nn59">Converting Python list to a char ** </a>
  956. <li><a href="Python.html#Python_nn60">Expanding a Python object into multiple arguments</a>
  957. <li><a href="Python.html#Python_nn61">Using typemaps to return arguments</a>
  958. <li><a href="Python.html#Python_nn62">Mapping Python tuples into small arrays</a>
  959. <li><a href="Python.html#Python_nn63">Mapping sequences to C arrays</a>
  960. <li><a href="Python.html#Python_nn64">Pointer handling</a>
  961. </ul>
  962. <li><a href="Python.html#Python_nn65">Docstring Features</a>
  963. <ul>
  964. <li><a href="Python.html#Python_nn66">Module docstring</a>
  965. <li><a href="Python.html#Python_nn67">%feature("autodoc")</a>
  966. <ul>
  967. <li><a href="Python.html#Python_nn68">%feature("autodoc", "0")</a>
  968. <li><a href="Python.html#Python_nn69">%feature("autodoc", "1")</a>
  969. <li><a href="Python.html#Python_nn70">%feature("autodoc", "docstring")</a>
  970. </ul>
  971. <li><a href="Python.html#Python_nn71">%feature("docstring")</a>
  972. </ul>
  973. <li><a href="Python.html#Python_nn72">Python Packages</a>
  974. </ul>
  975. </div>
  976. <!-- INDEX -->
  977. <h3><a href="Ruby.html#Ruby">27 SWIG and Ruby</a></h3>
  978. <!-- INDEX -->
  979. <div class="sectiontoc">
  980. <ul>
  981. <li><a href="Ruby.html#Ruby_nn2">Preliminaries</a>
  982. <ul>
  983. <li><a href="Ruby.html#Ruby_nn3">Running SWIG</a>
  984. <li><a href="Ruby.html#Ruby_nn4">Getting the right header files</a>
  985. <li><a href="Ruby.html#Ruby_nn5">Compiling a dynamic module</a>
  986. <li><a href="Ruby.html#Ruby_nn6">Using your module</a>
  987. <li><a href="Ruby.html#Ruby_nn7">Static linking</a>
  988. <li><a href="Ruby.html#Ruby_nn8">Compilation of C++ extensions</a>
  989. </ul>
  990. <li><a href="Ruby.html#Ruby_nn9">Building Ruby Extensions under Windows 95/NT</a>
  991. <ul>
  992. <li><a href="Ruby.html#Ruby_nn10">Running SWIG from Developer Studio</a>
  993. </ul>
  994. <li><a href="Ruby.html#Ruby_nn11">The Ruby-to-C/C++ Mapping</a>
  995. <ul>
  996. <li><a href="Ruby.html#Ruby_nn12">Modules</a>
  997. <li><a href="Ruby.html#Ruby_nn13">Functions</a>
  998. <li><a href="Ruby.html#Ruby_nn14">Variable Linking</a>
  999. <li><a href="Ruby.html#Ruby_nn15">Constants</a>
  1000. <li><a href="Ruby.html#Ruby_nn16">Pointers</a>
  1001. <li><a href="Ruby.html#Ruby_nn17">Structures</a>
  1002. <li><a href="Ruby.html#Ruby_nn18">C++ classes</a>
  1003. <li><a href="Ruby.html#Ruby_nn19">C++ Inheritance</a>
  1004. <li><a href="Ruby.html#Ruby_nn20">C++ Overloaded Functions</a>
  1005. <li><a href="Ruby.html#Ruby_nn21">C++ Operators</a>
  1006. <li><a href="Ruby.html#Ruby_nn22">C++ namespaces</a>
  1007. <li><a href="Ruby.html#Ruby_nn23">C++ templates</a>
  1008. <li><a href="Ruby.html#ruby_cpp_smart_pointers">C++ Smart Pointers</a>
  1009. <li><a href="Ruby.html#Ruby_nn25">Cross-Language Polymorphism</a>
  1010. <ul>
  1011. <li><a href="Ruby.html#Ruby_nn26">Exception Unrolling</a>
  1012. </ul>
  1013. </ul>
  1014. <li><a href="Ruby.html#Ruby_nn27">Input and output parameters</a>
  1015. <li><a href="Ruby.html#Ruby_nn29">Typemaps</a>
  1016. <ul>
  1017. <li><a href="Ruby.html#Ruby_nn30">What is a typemap?</a>
  1018. <li><a href="Ruby.html#Ruby_nn31">Ruby typemaps</a>
  1019. <li><a href="Ruby.html#Ruby_nn32">Typemap variables</a>
  1020. <li><a href="Ruby.html#Ruby_nn33">Useful Functions</a>
  1021. <ul>
  1022. <li><a href="Ruby.html#Ruby_nn34">C Datatypes to Ruby Objects</a>
  1023. <li><a href="Ruby.html#Ruby_nn35">Ruby Objects to C Datatypes</a>
  1024. <li><a href="Ruby.html#Ruby_nn36">Macros for VALUE</a>
  1025. <li><a href="Ruby.html#Ruby_nn37">Exceptions</a>
  1026. <li><a href="Ruby.html#Ruby_nn38">Iterators</a>
  1027. </ul>
  1028. <li><a href="Ruby.html#ruby_typemap_examples">Typemap Examples</a>
  1029. <li><a href="Ruby.html#Ruby_nn40">Converting a Ruby array to a char **</a>
  1030. <li><a href="Ruby.html#Ruby_nn41">Collecting arguments in a hash</a>
  1031. <li><a href="Ruby.html#Ruby_nn42">Pointer handling</a>
  1032. <ul>
  1033. <li><a href="Ruby.html#Ruby_nn43">Ruby Datatype Wrapping</a>
  1034. </ul>
  1035. </ul>
  1036. <li><a href="Ruby.html#ruby_operator_overloading">Operator overloading</a>
  1037. <ul>
  1038. <li><a href="Ruby.html#Ruby_nn45">Example: STL Vector to Ruby Array</a>
  1039. </ul>
  1040. <li><a href="Ruby.html#Ruby_nn46">Advanced Topics</a>
  1041. <ul>
  1042. <li><a href="Ruby.html#Ruby_nn47">Creating Multi-Module Packages</a>
  1043. <li><a href="Ruby.html#Ruby_nn48">Defining Aliases</a>
  1044. <li><a href="Ruby.html#Ruby_nn49">Predicate Methods</a>
  1045. <li><a href="Ruby.html#Ruby_nn50">Specifying Mixin Modules</a>
  1046. </ul>
  1047. <li><a href="Ruby.html#Ruby_nn51">Memory Management</a>
  1048. <ul>
  1049. <li><a href="Ruby.html#Ruby_nn53">Object Ownership</a>
  1050. <li><a href="Ruby.html#Ruby_nn54">Object Tracking</a>
  1051. <li><a href="Ruby.html#Ruby_nn55">Mark Functions</a>
  1052. <li><a href="Ruby.html#Ruby_nn56">Free Functions</a>
  1053. </ul>
  1054. </ul>
  1055. </div>
  1056. <!-- INDEX -->
  1057. <h3><a href="Tcl.html#Tcl">28 SWIG and Tcl</a></h3>
  1058. <!-- INDEX -->
  1059. <div class="sectiontoc">
  1060. <ul>
  1061. <li><a href="Tcl.html#Tcl_nn2">Preliminaries</a>
  1062. <ul>
  1063. <li><a href="Tcl.html#Tcl_nn3">Getting the right header files</a>
  1064. <li><a href="Tcl.html#Tcl_nn4">Compiling a dynamic module</a>
  1065. <li><a href="Tcl.html#Tcl_nn5">Static linking</a>
  1066. <li><a href="Tcl.html#Tcl_nn6">Using your module</a>
  1067. <li><a href="Tcl.html#Tcl_nn7">Compilation of C++ extensions</a>
  1068. <li><a href="Tcl.html#Tcl_nn8">Compiling for 64-bit platforms</a>
  1069. <li><a href="Tcl.html#Tcl_nn9">Setting a package prefix</a>
  1070. <li><a href="Tcl.html#Tcl_nn10">Using namespaces</a>
  1071. </ul>
  1072. <li><a href="Tcl.html#Tcl_nn11">Building Tcl/Tk Extensions under Windows 95/NT</a>
  1073. <ul>
  1074. <li><a href="Tcl.html#Tcl_nn12">Running SWIG from Developer Studio</a>
  1075. <li><a href="Tcl.html#Tcl_nn13">Using NMAKE</a>
  1076. </ul>
  1077. <li><a href="Tcl.html#Tcl_nn14">A tour of basic C/C++ wrapping</a>
  1078. <ul>
  1079. <li><a href="Tcl.html#Tcl_nn15">Modules</a>
  1080. <li><a href="Tcl.html#Tcl_nn16">Functions</a>
  1081. <li><a href="Tcl.html#Tcl_nn17">Global variables</a>
  1082. <li><a href="Tcl.html#Tcl_nn18">Constants and enums</a>
  1083. <li><a href="Tcl.html#Tcl_nn19">Pointers</a>
  1084. <li><a href="Tcl.html#Tcl_nn20">Structures</a>
  1085. <li><a href="Tcl.html#Tcl_nn21">C++ classes</a>
  1086. <li><a href="Tcl.html#Tcl_nn22">C++ inheritance</a>
  1087. <li><a href="Tcl.html#Tcl_nn23">Pointers, references, values, and arrays</a>
  1088. <li><a href

Large files files are truncated, but you can click here to view the full file