mirror of https://github.com/swig/swig
54 lines
1.4 KiB
OpenEdge ABL
54 lines
1.4 KiB
OpenEdge ABL
%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") {}
|
|
};
|
|
}
|
|
|