You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.0 KiB
44 lines
1.0 KiB
%include <std/std_except.i> |
|
%include <pystdcommon.swg> |
|
|
|
|
|
/* |
|
Generate the traits for a 'primitive' type, such as 'double', |
|
for which the SWIG_AsVal and SWIG_From methods are already defined. |
|
*/ |
|
|
|
%define %traits_ptypen(Type...) |
|
%fragment(SWIG_Traits_frag(Type),"header", |
|
fragment=SWIG_AsVal_frag(Type), |
|
fragment=SWIG_From_frag(Type), |
|
fragment="StdTraits") { |
|
namespace swig { |
|
template <> struct traits<Type > { |
|
typedef value_category category; |
|
static const char* type_name() { return #Type; } |
|
}; |
|
template <> struct traits_asval<Type > { |
|
typedef Type value_type; |
|
static int asval(PyObject *obj, value_type *val) { |
|
return SWIG_AsVal(Type)(obj, val); |
|
} |
|
}; |
|
template <> struct traits_from<Type > { |
|
typedef Type value_type; |
|
static PyObject *from(const value_type& val) { |
|
return SWIG_From(Type)(val); |
|
} |
|
}; |
|
} |
|
} |
|
%enddef |
|
|
|
|
|
%include <std/std_common.i> |
|
|
|
// |
|
// Generates the traits for all the known primitive |
|
// C++ types (int, double, ...) |
|
// |
|
%apply_cpptypes(%traits_ptypen); |
|
|
|
|