| Index: swig/Lib/std/std_pair.i
|
| ===================================================================
|
| --- swig/Lib/std/std_pair.i (revision 0)
|
| +++ swig/Lib/std/std_pair.i (revision 0)
|
| @@ -0,0 +1,163 @@
|
| +%include <std_common.i>
|
| +
|
| +%{
|
| +#include <utility>
|
| +%}
|
| +
|
| +
|
| +namespace std {
|
| + template <class T, class U > struct pair {
|
| + typedef T first_type;
|
| + typedef U second_type;
|
| +
|
| + %traits_swigtype(T);
|
| + %traits_swigtype(U);
|
| +
|
| + %fragment(SWIG_Traits_frag(std::pair<T,U >), "header",
|
| + fragment=SWIG_Traits_frag(T),
|
| + fragment=SWIG_Traits_frag(U),
|
| + fragment="StdPairTraits") {
|
| + namespace swig {
|
| + template <> struct traits<std::pair<T,U > > {
|
| + typedef pointer_category category;
|
| + static const char* type_name() {
|
| + return "std::pair<" #T "," #U " >";
|
| + }
|
| + };
|
| + }
|
| + }
|
| +
|
| +#ifndef SWIG_STD_PAIR_ASVAL
|
| + %typemap_traits_ptr(SWIG_TYPECHECK_PAIR, std::pair<T,U >);
|
| +#else
|
| + %typemap_traits(SWIG_TYPECHECK_PAIR, std::pair<T,U >);
|
| +#endif
|
| +
|
| + pair();
|
| + pair(T first, U second);
|
| + pair(const pair& p);
|
| +
|
| + template <class U1, class U2> pair(const pair<U1, U2> &p);
|
| +
|
| + T first;
|
| + U second;
|
| +
|
| +#ifdef %swig_pair_methods
|
| + // Add swig/language extra methods
|
| + %swig_pair_methods(std::pair<T,U >)
|
| +#endif
|
| + };
|
| +
|
| + // ***
|
| + // The following specializations should dissapear or get
|
| + // simplified when a 'const SWIGTYPE*&' can be defined
|
| + // ***
|
| + template <class T, class U > struct pair<T, U*> {
|
| + typedef T first_type;
|
| + typedef U* second_type;
|
| +
|
| + %traits_swigtype(T);
|
| + %traits_swigtype(U);
|
| +
|
| + %fragment(SWIG_Traits_frag(std::pair<T,U* >), "header",
|
| + fragment=SWIG_Traits_frag(T),
|
| + fragment=SWIG_Traits_frag(U),
|
| + fragment="StdPairTraits") {
|
| + namespace swig {
|
| + template <> struct traits<std::pair<T,U* > > {
|
| + typedef pointer_category category;
|
| + static const char* type_name() {
|
| + return "std::pair<" #T "," #U " * >";
|
| + }
|
| + };
|
| + }
|
| + }
|
| +
|
| + %typemap_traits_ptr(SWIG_TYPECHECK_PAIR, std::pair<T,U* >);
|
| +
|
| + pair();
|
| + pair(T __a, U* __b);
|
| + pair(const pair& __p);
|
| +
|
| + T first;
|
| + U* second;
|
| +
|
| +#ifdef %swig_pair_methods
|
| + // Add swig/language extra methods
|
| + %swig_pair_methods(std::pair<T,U*>)
|
| +#endif
|
| + };
|
| +
|
| + template <class T, class U > struct pair<T*, U> {
|
| + typedef T* first_type;
|
| + typedef U second_type;
|
| +
|
| + %traits_swigtype(T);
|
| + %traits_swigtype(U);
|
| +
|
| + %fragment(SWIG_Traits_frag(std::pair<T*,U >), "header",
|
| + fragment=SWIG_Traits_frag(T),
|
| + fragment=SWIG_Traits_frag(U),
|
| + fragment="StdPairTraits") {
|
| + namespace swig {
|
| + template <> struct traits<std::pair<T*,U > > {
|
| + typedef pointer_category category;
|
| + static const char* type_name() {
|
| + return "std::pair<" #T " *," #U " >";
|
| + }
|
| + };
|
| + }
|
| + }
|
| +
|
| + %typemap_traits_ptr(SWIG_TYPECHECK_PAIR, std::pair<T*,U >);
|
| +
|
| + pair();
|
| + pair(T* __a, U __b);
|
| + pair(const pair& __p);
|
| +
|
| + T* first;
|
| + U second;
|
| +
|
| +#ifdef %swig_pair_methods
|
| + // Add swig/language extra methods
|
| + %swig_pair_methods(std::pair<T*,U >)
|
| +#endif
|
| + };
|
| +
|
| + template <class T, class U > struct pair<T*, U*> {
|
| + typedef T* first_type;
|
| + typedef U* second_type;
|
| +
|
| + %traits_swigtype(T);
|
| + %traits_swigtype(U);
|
| +
|
| + %fragment(SWIG_Traits_frag(std::pair<T*,U* >), "header",
|
| + fragment=SWIG_Traits_frag(T),
|
| + fragment=SWIG_Traits_frag(U),
|
| + fragment="StdPairTraits") {
|
| + namespace swig {
|
| + template <> struct traits<std::pair<T*,U* > > {
|
| + typedef pointer_category category;
|
| + static const char* type_name() {
|
| + return "std::pair<" #T " *," #U " * >";
|
| + }
|
| + };
|
| + }
|
| + }
|
| +
|
| + %typemap_traits(SWIG_TYPECHECK_PAIR, std::pair<T*,U* >);
|
| +
|
| + pair();
|
| + pair(T* __a, U* __b);
|
| + pair(const pair& __p);
|
| +
|
| + T* first;
|
| + U* second;
|
| +
|
| +#ifdef %swig_pair_methods
|
| + // Add swig/language extra methods
|
| + %swig_pair_methods(std::pair<T*,U*>)
|
| +#endif
|
| + };
|
| +
|
| +}
|
|
|