Welcome to mirror list, hosted at ThFree Co, Russian Federation.

pair.hpp « pyhelpers - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 54155aed4c6f23508f1f8b33ea23f95298ac12ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once

#include "std/utility.hpp"

#include <boost/python.hpp>
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>

namespace
{
using namespace boost::python;

// Converts a std::pair instance to a Python tuple.
template <typename T1, typename T2>
struct pair_to_tuple
{
  static PyObject * convert(pair<T1, T2> const & p)
  {
    return incref(make_tuple(p.first, p.second).ptr());
  }
  
  static PyTypeObject const * get_pytype() { return &PyTuple_Type; }
};

template <typename T1, typename T2>
struct pair_to_python_converter
{
  pair_to_python_converter() { to_python_converter<pair<T1, T2>, pair_to_tuple<T1, T2>, true>(); }
};
}  // namespace