summaryrefslogtreecommitdiff
path: root/Examples
Commit message (Collapse)AuthorAgeFilesLines
* Instantiation of C++11 variadic function templatesWilliam S Fulton2023-01-032-2/+36
| | | | | | Complete support for C++11 variadic function templates. Support was previously limited to just one template parameter. Now zero or more template parameters are supported in the %template instantiation.
* Move variadic function template tests to separate testcaseWilliam S Fulton2023-01-033-43/+83
|
* Merge branch 'OCaml-rename_rstrip_encoder-using2-runtime-tests'William S Fulton2022-12-302-0/+11
|\ | | | | | | | | | | * OCaml-rename_rstrip_encoder-using2-runtime-tests: Complete copy of testcase from Python [OCaml] Runtime tests for rename_rstrip_encoder and using2
| * Complete copy of testcase from PythonWilliam S Fulton2022-12-301-1/+3
| |
| * [OCaml] Runtime tests for rename_rstrip_encoder and using2Zackery Spytz2022-12-042-0/+9
| | | | | | | | | | | | | | Add runtime tests for rename_rstrip_encoder and using2. They are based on the runtime tests that already exist for other languages.
* | More variadic template testingWilliam S Fulton2022-12-301-3/+31
| | | | | | | | Test less conventional function ptr parameters
* | Syntax error fixes parsing more elaborate parameter pack argumentsWilliam S Fulton2022-12-301-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that are function pointers and member function pointers. template <typename... V> struct VariadicParms { void ParmsFuncPtrPtr(int (*)(V*...)) {} void ParmsFuncPtrPtrRef(int (*)(V*&...)) {} void ParmsFuncPtrPtrRValueRef(int (*)(V*&&...)) {} void ParmsFuncPtrRef(int (*)(V&...)) {} void ParmsFuncPtrRValueRef(int (*)(V&&...)) {} void ParmsMemFuncPtrPtr(int (KlassMemFuncs::*)(V*...)) {} void ParmsMemFuncPtrPtrRef(int (KlassMemFuncs::*)(V*&...)) {} void ParmsMemFuncPtrPtrRValueRef(int (KlassMemFuncs::*)(V*&&...)) {} void ParmsMemFuncPtrRef(int (KlassMemFuncs::*)(V&...)) {} void ParmsMemFuncPtrRValueRef(int (KlassMemFuncs::*)(V&&...)) {} }; %template(VariadicParms0) VariadicParms<>; %template(VariadicParms1) VariadicParms<A>; Also in various other places such as within noexcept specifiers: template<typename T, typename... Args> void emplace(Args &&... args) noexcept( std::is_nothrow_constructible<T, Args &&...>::value); Issue #1863
* | Fix instantiation of variadic class templatesWilliam S Fulton2022-12-291-2/+33
| | | | | | | | | | | | | | | | | | | | | | containing parameter pack arguments that are function pointers. template <typename... V> struct VariadicParms { void ParmsFuncPtrVal(int (*)(V...)) {} }; %template(VariadicParms0) VariadicParms<>; %template(VariadicParms1) VariadicParms<A>;
* | Fix syntax error parsing variadic template parameter pack argumentsWilliam S Fulton2022-12-231-1/+24
| | | | | | | | | | | | that are function pointers Issue #1863
* | Extend variadic template support to various type combinationsWilliam S Fulton2022-12-221-0/+17
| |
* | Support multiple arguments in variadic templates.William S Fulton2022-12-223-10/+225
| | | | | | | | | | | | | | Remove warning SWIGWARN_CPP11_VARIADIC_TEMPLATE which was issued if more than one argument was used for a variadic template. SwigType enhancement: 'v.' now represents a variadic argument.
* | Fix syntax error for misplaced Doxygen comment after struct/class member.William S Fulton2022-12-064-0/+35
| | | | | | | | | | | | | | Fix syntax error using Doxygen member groups syntax, "///*}", when used after final struct/class member. Issue #1636
* | Improved handling of Doxygen comments in parameter listsWilliam S Fulton2022-12-052-3/+50
|/ | | | | | | Fix garbled Doxygen post comments in parameter lists. Fix syntax error parsing a trailing Doxygen comment in parameter lists. Closes #2023
* Fix syntax error parsing of Doxygen comments after last enum itemWilliam S Fulton2022-12-032-0/+24
| | | | | | | It is unconventional to have a doxygen comment after an enum item. It is attached to the previous, that is, the enum item to match Doxygen behaviour. Closes #1609
* Fix parsing of unconventional Doxygen post comments for enum items.William S Fulton2022-12-032-2/+61
| | | | Closes #1715
* Testcase fix for -Wdelete-non-virtual-dtorWilliam S Fulton2022-12-021-0/+1
|
* Improved template template parameters support.William S Fulton2022-12-027-10/+156
| | | | | | | | | | | | Previously, specifying more than one simple template template parameter resulted in a parse error. Now multiple template template parameters are working including instantiation with %template. Example: template <template<template<class> class, class> class Op, template<class> class X, class Y> class C { ... }; Closes #624 Closes #1021
* Test case fix for std::complex and non-floating types deprecationWilliam S Fulton2022-11-262-4/+4
| | | | | | From Visual Studio 2022: warning C4996: 'std::complex<int>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
* Test cases fixWilliam S Fulton2022-11-262-5/+5
|
* Add missing testcase cpp11_template_parameters_decltypeWilliam S Fulton2022-11-261-0/+51
|
* Slightly better decltype() support for expressionsWilliam S Fulton2022-11-263-6/+31
| | | | | | | | | | | | | | | | | decltype now accepts C++ expressions instead of just an ID, such as: int i,j; ... decltype(i+j) ... ... decltype(&i) ... These result in a warning for non-trivial expressions which SWIG cannot evaluate: Warning 344: Unable to deduce decltype for 'i+j'. See 'Type Inference' in CPlusPlus.html for workarounds. Issue #1589 Issue #1590
* Fix syntax error parsing unnamed template parameters with a default.William S Fulton2022-11-251-1/+41
| | | | Closes #961
* Fix undefined behaviour in parserOlly Betts2022-11-251-1/+3
| | | | | | | Fix undefined behaviour in swig's parser when handling default parameter expressions containing method calls. Fixes #2447
* Merge branch 'rtests2'William S Fulton2022-11-236-0/+225
|\ | | | | | | | | | | | | | | | | | | | | * rtests2: more r tests more r tests added testcase pointer_reference [PHP] Update docs for removal of -noproxy in SWIG 4.1.0 Conflicts: CHANGES.current
| * more r testsAndLLA2022-11-201-0/+14
| |
| * more r testsAndLLA2022-11-164-0/+187
| |
| * added testcase pointer_referenceAndLLA2022-11-161-0/+24
| |
* | Restore testing template_expr testcaseWilliam S Fulton2022-11-232-4/+13
| | | | | | | | | | | | Problems handling < and > in template parameters are now fixed. Remove illegal C++ code (template typedefs) - replace with a function using same template.
* | Fix seg fault handling template parameter expressions containing '>='William S Fulton2022-11-221-3/+0
| | | | | | | | | | | | Similar to previous commit Issue #1037
* | Fix seg fault handling template parameter expressions containing '<='William S Fulton2022-11-221-0/+13
| | | | | | | | | | | | | | | | | | | | | | Recent commits ensure types are correctly stored in SwigType *. In particular template parameters are enclosed within '<(' and ')>'. Now we can confidently handle template parameters as really being delimited as such to fix an infinite loop handling template expressions containing '<' or '>'. The previous implementation only assumed template parameters were delimited by '<' and '>'. Issue #1037
* | Duplicate class template instantiations via %template changesWilliam S Fulton2022-11-188-9/+81
|/ | | | | | | | | | | Named duplicate class template instantiations now issue a warning and are ignored. Duplicate empty class template instantiations are quietly ignored. The test cases are fixed for this new behaviour. This commit is a pre-requisite for the near future so that the Python builtin wrappers can correctly use the SwigType_namestr function without generating duplicate symbol names.
* Merge pull request #2430 from AndLLA/rtestsWilliam S Fulton2022-11-064-0/+171
|\ | | | | more tests for R
| * more tests for RAndLLA2022-11-054-0/+171
| |
* | Workaround for incomplete or/and keyword support in VC++William S Fulton2022-11-061-0/+5
|/
* rename cpp14_enable_if_t to cpp17_enable_if_tWilliam S Fulton2022-11-053-6/+6
| | | | | std::enable_if_t is in C++14, but std::is_integral_v is in C++17
* Fix infinite loop handling non-type template parametersWilliam S Fulton2022-11-053-0/+54
| | | | | | | | | Fixes infinite loop due to () brackets in a non-type template parameter containing an expression Fixes #2418 Non-trivial expressions are still not qualified properly though.
* Overloading fixes for R and rtypecheck typemapWilliam S Fulton2022-11-051-4/+4
| | | | | | | | - Fix for special variable $argtype expansion in rtypecheck typemap. - Remove unnecessary () brackets when using rtypecheck typemap for single parameter functions. - Add rtypecheck typemaps for shared_ptr so that NULL can be used in overloaded functions taking shared_ptr.
* Improve R wrapper error message calling overloaded methodsWilliam S Fulton2022-11-051-1/+1
| | | | | | | | | | | when incorrect types passed are passed to the overloaded methods. Old unhelpful error message: Error in f(...) : could not find function "f" Example of new improved error message: Error in use_count(k) : cannot find overloaded function for use_count with argtypes (NULL)
* Fix memory leak in R shared_ptr wrappersWilliam S Fulton2022-11-051-16/+16
| | | | | | | | | Fix leak when a cast up a class inheritance chain is required. Adds implementation of SWIG_ConvertPtrAndOwn for R. Closes #2386
* li_boost_shared_ptr testcase for RWilliam S Fulton2022-11-051-72/+115
| | | | Synchronise test with Python version of testcase
* cpp11_attribute_specifiers testcase warning suppressionWilliam S Fulton2022-11-051-0/+1
|
* R shared_ptr testingv4.1.0William S Fulton2022-10-241-24/+23
| | | | | Enable more tests. Use preferred member variable access.
* enable tests working after master mergeAndLLA2022-10-241-14/+16
|
* Whitespace cleanup in R testcaseWilliam S Fulton2022-10-241-70/+70
|
* R shared_ptr fixesWilliam S Fulton2022-10-241-33/+33
| | | | | | | | Fix problems in shared_ptr wrappers where the class names were not consistent when using the shared_ptr template or the actual underlying type. Move $R_class substitution to typemaps. Issue #2386
* enable test for pointerreftest fixed by 752b7e8AndLLA2022-10-241-2/+2
|
* switched implementation reference from java to pythonAndLLA2022-10-241-103/+103
|
* fixes from code reviewAndLLA2022-10-241-2/+1
|
* enable li_boost_shared_ptr in r-test-suiteAndLLA2022-10-244-2/+681
|
* Polymorphism in R wrappers fixed for C++ structsWilliam S Fulton2022-10-248-4/+62
|