Add C++20 documentation chapter

This commit is contained in:
William S Fulton 2020-06-08 20:52:57 +01:00
commit b7bcb338cf
36 changed files with 1088 additions and 1030 deletions

View file

@ -7,7 +7,7 @@
</head>
<body bgcolor="#ffffff">
<H1><a name="Php">31 SWIG and PHP</a></H1>
<H1><a name="Php">32 SWIG and PHP</a></H1>
<!-- INDEX -->
<div class="sectiontoc">
<ul>
@ -70,7 +70,7 @@ your extension into php directly, you will need the complete PHP source tree
available.
</p>
<H2><a name="Php_nn1">31.1 Generating PHP Extensions</a></H2>
<H2><a name="Php_nn1">32.1 Generating PHP Extensions</a></H2>
<p>
@ -119,7 +119,7 @@ and it doesn't play nicely with package system. We don't recommend
this approach, or provide explicit support for it.
</p>
<H3><a name="Php_nn1_1">31.1.1 Building a loadable extension</a></H3>
<H3><a name="Php_nn1_1">32.1.1 Building a loadable extension</a></H3>
<p>
@ -134,7 +134,7 @@ least work for Linux though):
gcc -shared example_wrap.o example.o -o example.so
</pre></div>
<H3><a name="Php_nn1_3">31.1.2 Using PHP Extensions</a></H3>
<H3><a name="Php_nn1_3">32.1.2 Using PHP Extensions</a></H3>
<p>
@ -182,7 +182,7 @@ This PHP module also defines the PHP classes for the wrapped API, so you'll
almost certainly want to include it anyway.
</p>
<H2><a name="Php_nn2">31.2 Basic PHP interface</a></H2>
<H2><a name="Php_nn2">32.2 Basic PHP interface</a></H2>
<p>
@ -194,7 +194,7 @@ SWIG doesn't have support for generating wrappers which make use of PHP's
namespace feature.
</p>
<H3><a name="Php_nn2_1">31.2.1 Constants</a></H3>
<H3><a name="Php_nn2_1">32.2.1 Constants</a></H3>
<p>
@ -273,7 +273,7 @@ is treated as true by the if test, when the value of the intended constant
would be treated as false!
</p>
<H3><a name="Php_nn2_2">31.2.2 Global Variables</a></H3>
<H3><a name="Php_nn2_2">32.2.2 Global Variables</a></H3>
<p>
@ -322,7 +322,7 @@ undefined.
At this time SWIG does not support custom accessor methods.
</p>
<H3><a name="Php_nn2_3">31.2.3 Functions</a></H3>
<H3><a name="Php_nn2_3">32.2.3 Functions</a></H3>
<p>
@ -375,7 +375,7 @@ print $s; # The value of $s was not changed.
-->
<H3><a name="Php_nn2_4">31.2.4 Overloading</a></H3>
<H3><a name="Php_nn2_4">32.2.4 Overloading</a></H3>
<p>
@ -430,7 +430,7 @@ taking the integer argument.
</p>
-->
<H3><a name="Php_nn2_5">31.2.5 Pointers and References</a></H3>
<H3><a name="Php_nn2_5">32.2.5 Pointers and References</a></H3>
<p>
@ -568,7 +568,7 @@ PHP in a number of ways: by using <tt>unset</tt> on an existing
variable, or assigning <tt>NULL</tt> to a variable.
</p>
<H3><a name="Php_nn2_6">31.2.6 Structures and C++ classes</a></H3>
<H3><a name="Php_nn2_6">32.2.6 Structures and C++ classes</a></H3>
<p>
@ -629,7 +629,7 @@ Would be used in the following way from PHP:
Member variables and methods are accessed using the <tt>-&gt;</tt> operator.
</p>
<H4><a name="Php_nn2_6_1">31.2.6.1 Using -noproxy</a></H4>
<H4><a name="Php_nn2_6_1">32.2.6.1 Using -noproxy</a></H4>
<p>
@ -655,7 +655,7 @@ Complex_im_set($obj, $d);
Complex_im_get($obj);
</pre></div>
<H4><a name="Php_nn2_6_2">31.2.6.2 Constructors and Destructors</a></H4>
<H4><a name="Php_nn2_6_2">32.2.6.2 Constructors and Destructors</a></H4>
<p>
@ -696,7 +696,7 @@ the programmer can either reassign the variable or call
<tt>unset($v)</tt>
</p>
<H4><a name="Php_nn2_6_3">31.2.6.3 Static Member Variables</a></H4>
<H4><a name="Php_nn2_6_3">32.2.6.3 Static Member Variables</a></H4>
<p>
@ -739,7 +739,7 @@ Ko::threats(10);
echo "There have now been " . Ko::threats() . " threats\n";
</pre></div>
<H4><a name="Php_nn2_6_4">31.2.6.4 Static Member Functions</a></H4>
<H4><a name="Php_nn2_6_4">32.2.6.4 Static Member Functions</a></H4>
<p>
@ -761,7 +761,7 @@ Ko::threats();
</pre></div>
<H4><a name="Php_nn2_6_5">31.2.6.5 Specifying Implemented Interfaces</a></H4>
<H4><a name="Php_nn2_6_5">32.2.6.5 Specifying Implemented Interfaces</a></H4>
<p>
@ -779,7 +779,7 @@ so:
If there are multiple interfaces, just list them separated by commas.
</p>
<H3><a name="Php_nn2_7">31.2.7 PHP Pragmas, Startup and Shutdown code</a></H3>
<H3><a name="Php_nn2_7">32.2.7 PHP Pragmas, Startup and Shutdown code</a></H3>
<p>
@ -876,7 +876,7 @@ The <tt>%rinit</tt> and <tt>%rshutdown</tt> statements are very similar but inse
into the request init (PHP_RINIT_FUNCTION) and request shutdown (PHP_RSHUTDOWN_FUNCTION) code respectively.
</p>
<H2><a name="Php_nn3">31.3 Cross language polymorphism</a></H2>
<H2><a name="Php_nn3">32.3 Cross language polymorphism</a></H2>
<p>
@ -911,7 +911,7 @@ wrapper functions takes care of all the cross-language method routing
transparently.
</p>
<H3><a name="Php_nn3_1">31.3.1 Enabling directors</a></H3>
<H3><a name="Php_nn3_1">32.3.1 Enabling directors</a></H3>
<p>
@ -1000,7 +1000,7 @@ class MyFoo extends Foo {
</div>
<H3><a name="Php_nn3_2">31.3.2 Director classes</a></H3>
<H3><a name="Php_nn3_2">32.3.2 Director classes</a></H3>
@ -1081,7 +1081,7 @@ so there is no need for the extra overhead involved with routing the
calls through PHP.
</p>
<H3><a name="Php_nn3_3">31.3.3 Ownership and object destruction</a></H3>
<H3><a name="Php_nn3_3">32.3.3 Ownership and object destruction</a></H3>
<p>
@ -1137,7 +1137,7 @@ In this example, we are assuming that FooContainer will take care of
deleting all the Foo pointers it contains at some point.
</p>
<H3><a name="Php_nn3_4">31.3.4 Exception unrolling</a></H3>
<H3><a name="Php_nn3_4">32.3.4 Exception unrolling</a></H3>
<p>
@ -1204,7 +1204,7 @@ Swig::DirectorMethodException is thrown, PHP will register the exception
as soon as the C wrapper function returns.
</p>
<H3><a name="Php_nn3_5">31.3.5 Overhead and code bloat</a></H3>
<H3><a name="Php_nn3_5">32.3.5 Overhead and code bloat</a></H3>
<p>
@ -1237,7 +1237,7 @@ optimized by selectively enabling director methods (using the %feature
directive) for only those methods that are likely to be extended in PHP.
</p>
<H3><a name="Php_nn3_6">31.3.6 Typemaps</a></H3>
<H3><a name="Php_nn3_6">32.3.6 Typemaps</a></H3>
<p>
@ -1251,7 +1251,7 @@ need to be supported.
</p>
<H3><a name="Php_nn3_7">31.3.7 Miscellaneous</a></H3>
<H3><a name="Php_nn3_7">32.3.7 Miscellaneous</a></H3>
<p> Director typemaps for STL classes are mostly in place, and hence you