/* This interface checks whether SWIG supports the new double angled brackets in the template syntax without having a space inbetween. This feature was introduced in new C++11 standard. */ %module cpp11_template_double_brackets %inline %{ #include std::map> map1; std::map< int,std::map > map2; std::map>> map3; std::map>>> map4; %} // Check streaming operators are still okay %rename(ExtractionOperator) operator>>; %rename(InsertionOperator) operator<<; %inline %{ class ABC { public: int a; int operator>>(ABC &) { return 0; } int operator<<(ABC &) { return 0; } }; class DEF { public: int a; int operator<<(DEF &) { return 0; } int operator>>(DEF &) { return 0; } }; template class ABC2 { public: int a; template U operator>>(ABC &); template U operator<<(ABC &); }; %} // Test shifts are still working %inline %{ int shift_init1 = 4 << 2 >> 1; int shift_init2 = 4 >> 2 << 1 << 1 >> 2; %}