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.
45 lines
1.0 KiB
45 lines
1.0 KiB
5 years ago
|
%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);
|
||
|
|