swig/Source
William S Fulton 004af63f3c Syntax error fixes parsing more elaborate parameter pack arguments
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
2022-12-30 00:19:02 +00:00
..
CParse Syntax error fixes parsing more elaborate parameter pack arguments 2022-12-30 00:19:02 +00:00
DOH Use https for swig.org links 2022-10-06 13:16:39 +13:00
Doxygen Use https for swig.org links 2022-10-06 13:16:39 +13:00
Include Support multiple arguments in variadic templates. 2022-12-22 21:23:39 +00:00
Modules Ocaml name mangling fix 2022-11-29 08:04:37 +00:00
Preprocessor Consolidate name mangling functions 2022-11-12 09:18:19 +00:00
Swig Fix instantiation of variadic class templates 2022-12-29 23:38:17 +00:00
Makefile.am Remove -browse command line option 2022-04-03 08:56:07 +12:00
README Remove details of long-removed directories 2021-05-16 08:42:39 +12:00

SWIG Source directory

 Source/DOH          -  A core set of basic datatypes including
                        strings, lists, hashes, and files.  Used
                        extensively by the rest of SWIG.

 Source/Swig         -  Swig core. Type-system, utility functions.

 Source/Preprocessor -  SWIG C Preprocessor

 Source/CParse       -  SWIG C Parser (still messy)

 Source/Modules      -  Language modules.

 Source/Include      -  Include files.