* cpp11-ref-qualifiers:
Warnings in testcases fix
Add support for %typemap and member function pointers with qualifiers
Fix wrapping of some member function pointer parameters
Add support for member function pointers with ref-qualifiers
Add error for constructors, destructors, static methods declared with qualifiers
Add support for conversion operators with ref-qualifiers
Alternate function syntax parsing improvement
Re-organise parser grammar for initializer rules
Re-organise parser grammar for declarator and initializer rules
Add docs for C++11 ref-qualifiers
Add unignore for rvalue ref-qualifiers
Improve ref-qualifier implementation
Fix support for member const function pointer variables
Use normal SWIG encodings for ref-qualifiers
C++11 ref-qualifier support added
Travis is now testing on Ubuntu Trusty by default instead of Ubuntu
Precise. SWIG wrappers need some work for this environment.
Travis build failure: https://travis-ci.org/swig/swig/jobs/273885208
Issue #971
Step 1 to make these closer to the definitions used in the standard.
The initializer rule should not include qualifiers and exception specification.
- split cpp_const into add qualifiers_exception_specification and empty rules
- simplify initializer to use new qualifiers_exception_specification rule
Use std::move on this pointer as the default approach to supporting
rvalue ref-qualifiers if a user really wants to wrap.
std::move requires <memory> headers so add swigfragments.swg for all
languages to use common fragments. Just header file fragments for now.
Internally, handle function ref-qualifiers in the function decl type string.
Needed for a whole host of things to work like %feature and %rename.
Add %feature %rename and %ignore testing for ref-qualifiers.
Was not generating code that compiled when the variable was not
a simple member pointer, for example,
a const reference member pointer:
short (Funcs::* const& cc7)(bool) const = cc1;
This prevents the previously-set element value from being collected
before or during the call to setElement. Since C++ could still have
a reference to during that time, it could lead to misbehavior.
- Rename class entry variables to SWIGTYPE_class_ce
- Refactor factory code to use SWIGTYPE_class_ce to create objects
- Refactor ConvertPtr to work of wrapped class objects.
Fixes#1059
Methods with rvalue ref-qualifiers are ignored by default as it is not
possible to have an rvalue temporary from the target language (which is
needed to call the rvalue ref-qualified method).
A warning 405 is shown mentioning the ignored rvalue ref-qualifier method
which can be seen with the -Wextra option.
cpp_refqualifier.i:15: Warning 405: Method with rvalue ref-qualifier ignored h() const &&.
Usually rvalue and lvalue ref-qualifier overloaded methods are written - the
lvalue method will then be wrapped.
- Change the need of runtime check on old or new flow at wrapper generation time.
- Change the check on add ZEND_ACC_ABSTRACT to GetFlag(n, "abstract") && Swig_directorclass(Swig_methodclass(n))
- workaround to solve abstract testcases at the moment.
- Remove redundant code in class handler for getting namespaces (Not the correct approact) and use of zend_register_class_alias_ex.
- Refactor choosing of class name to use sym:name by default.
- Change enum_scope_template test to use class enums.
- Move the conversion of void* of ptr in swig wrapper to class pointer to Lib files.
- Synchronize between old and new flow. Old flow to accept newly created objects,
with the use of a new property SWIG_classWrapper to newly created objects.
- ZEND_BEGIN_ARG_INFO_EX to hold exact number of arguments required.
- Fix the constructor overloading bug in the in-house Swig_class_overload_dispatch function
- Add helper function to check if the class is wrapped.
- Add ZEND_ACC_ABSTRACT to virtual functions to make the class abstract.
- Change how wname is selected for staticmemberfn.
- Helper function to get names without namespace getNameWithoutNamespace.
- Fix bugs on class entry level at class handler.
- Move all entry level code to class handler from class decleration.
- Checking if base.item is null before using it.
- Check if the parent class is wrapped before using its class entry.