Merge branch 'master' into gsoc2012-scilab

This commit is contained in:
Simon Marchetto 2014-03-11 10:24:09 +01:00
commit 013b9f9769
36 changed files with 285 additions and 303 deletions

View file

@ -274,6 +274,7 @@ CPP_TEST_CASES += \
nspace \
nspace_extend \
naturalvar \
naturalvar_more \
nested_class \
nested_comment \
nested_workaround \

View file

@ -4,6 +4,12 @@
%{
#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
// Fix Tcl.h and Windows.h cat and mouse over definition of VOID
#if defined(_TCL) && defined(__CYGWIN__)
#ifdef VOID
#undef VOID
#endif
#endif
#include <windows.h>
#else
// Use equivalent types for non-windows systems

View file

@ -0,0 +1,53 @@
%module naturalvar_more
// The instantiation of a template using an enum in the template parameter was not picking up %naturalvar.
// These typemaps will be used if %naturalvar is not working
%typemap(out) T<Space::E> *te, T<Space::E> *const_te "_should_not_use_this_out_typemap_"
%typemap(varout) T<Space::E> *te, T<Space::E> *const_te "_should_not_use_this_varout_typemap_"
%typemap(out) Hidden *hidden "_should_not_use_this_out_typemap_"
%typemap(varout) Hidden *hidden "_should_not_use_this_varout_typemap_"
%naturalvar T<Space::E>;
%naturalvar Hidden;
%inline %{
template <typename X> struct T {};
struct K {};
struct Hidden;
namespace Ace {
int glob;
}
%}
%{
struct Hidden {};
namespace Ace {
template<typename> struct NoIdea {};
}
%}
%inline %{
namespace Space {
enum E { E1, E2, E3 };
}
%}
%template(TE) T<Space::E>;
%include <std_string.i>
%include <std_vector.i>
%template(VectorString) std::vector<std::string>;
%inline {
using namespace Space;
struct S {
T<E> te;
const T<E> const_te;
const std::vector<std::string>::value_type const_string_member; // check this resolves to std::string which has a naturalvar
std::vector<std::string>::value_type string_member; // check this resolves to std::string which has a naturalvar
Hidden hidden;
Ace::NoIdea<Hidden> noidea;
S() : const_te(), const_string_member("initial string value") {}
};
}

View file

@ -1,5 +1,9 @@
%module typemap_qualifier_strip
%typemap(freearg) int *ptr ""
%typemap(freearg) int *const ptrConst ""
%typemap(freearg) int const* constPtr ""
%typemap(in) int *ptr {
int temp = 1234;
$1 = &temp;