diff --git a/Doc/Manual/C.html b/Doc/Manual/C.html index 2b30c4389..28067281c 100644 --- a/Doc/Manual/C.html +++ b/Doc/Manual/C.html @@ -512,7 +512,7 @@ Let's assume we have the following C++ interface file, we'd like to generate cod What we would like to generate as a C interface of this function would be something like this: -
+//proxy header file SomeClass *new_SomeClass(void); void delete_SomeClass(SomeClass* carg); @@ -533,7 +533,7 @@ We need 2 translation units to be able to have C types with the same names as thThe Wrapper
Since the proxy embeds a call to the wrapper function, we'll examine the generation of the wrapper function first. -+SWIGEXPORTC SwigObj * _wrap_someFunction(SwigObj * carg1, int carg2) { SomeClass * cppresult; SomeTemplateClass< int > *arg1 = 0 ; @@ -576,7 +576,7 @@ A typical wrapper will be composited with these [optional] blocks: Let's go through it step by step and start with the wrapper prototype -+couttype ctype ctype --------- --------- --- SwigObj * _wrap_someFunction(SwigObj * carg1, int carg2); @@ -584,7 +584,7 @@ SwigObj * _wrap_someFunction(SwigObj * carg1, int carg2); As first unit of the wrapper code, a variable to hold the return value of the function is emitted to the wrapper's body -+couttype --------- SwigObj * result; @@ -592,7 +592,7 @@ SwigObj * result; Now for each of the C++ function's arguments, a local variable with the very same type is emitted to the wrapper's body. -+@@ -600,7 +600,7 @@ int arg2 ; If it's a C++ function that is wrapped (in this case it is), another variable is emitted for the 'original' return value of the C++ function. At this point, we simply 'inject' behavior if it's a C++ function that is wrapped (in this cas it obviously is). -SomeTemplateClass< int > *arg1 = 0 ; int arg2 ;+cppouttype ----------- SomeClass * cppresult; @@ -608,7 +608,7 @@ SomeClass * cppresult; Next, the values of the input parameters are assigned to the local variables using the 'in' typemap. -+{ if (carg1) arg1 = (SomeTemplateClass< int > *) carg1->obj; @@ -625,13 +625,13 @@ This could easily become messy if it was done in the same line with the local vaAt this point we are ready to call the C++ function with our parameters.
-+Subsequently, the return value is assigned to the dedicated return value variable using the 'out' typemap -{ const int &_result_ref = someFunction(*arg1,arg2);cppresult = (int*) &_result_ref; }+Finally, the return value variable is returned. -{ result = (SwigObj*) SWIG_create_object(SWIG_STR(SomeClass)); result->obj = (void*) &cppresult; @@ -639,7 +639,7 @@ Subsequently, the return value is assigned to the dedicated return value variabl+return result;