%module("templatereduce") li_std_map %include std_pair.i %include std_map.i %include std_multimap.i %inline %{ struct A{ int val; A(int v = 0): val(v) { } }; %} namespace std { %template(pairii) pair; %template(pairAA) pair; %template(pairA) pair; %template(mapA) map; %template(mmapA) multimap; %template(paircA1) pair; %template(paircA2) pair; %template(pairiiA) pair >; %template(pairiiAc) pair >; %template() pair; %template(pymap) map; } %inline { std::pair p_identa(std::pair p) { return p; } std::map m_identa(const std::map& v) { return v; } } namespace std { %template(mapii) map; }