template struct Converter_std_pair { static PyObject* toPython(ValueHolder holder) { ValueHolder first(holder.value.first); ValueHolder second(holder.value.second); PyObject* tuple = PyTuple_New(2); PyTuple_SET_ITEM(tuple, 0, Converter::toPython(first)); PyTuple_SET_ITEM(tuple, 1, Converter::toPython(second)); return tuple; } static StdPair toCpp(PyObject* pyobj) { StdPair result; PyObject* pyFirst = PySequence_GetItem(pyobj, 0); PyObject* pySecond = PySequence_GetItem(pyobj, 1); result.first = Converter::toCpp(pyFirst); result.second = Converter::toCpp(pySecond); return result; } }; template struct Converter > : Converter_std_pair > {};