FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
python/example/std_pair.cpp at develop · willcrichton/python · GitHub
willcrichton
/
python
Public
forked from
boostorg/python
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
python
/
example
/
std_pair.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
49 lines (42 loc) · 1.34 KB
Breadcrumbs
python
/
example
/
std_pair.cpp
Copy path
File metadata and controls
49 lines (42 loc) · 1.34 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
Copyright Ralf W. Grosse-Kunstleve 2002-2004. Distributed under the Boost
//
Software License, Version 1.0. (See accompanying
//
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
include
<
boost/python/module.hpp
>
#
include
<
boost/python/def.hpp
>
#
include
<
boost/python/tuple.hpp
>
#
include
<
boost/python/to_python_converter.hpp
>
namespace
{
//
Avoid cluttering the global namespace.
//
Converts a std::pair instance to a Python tuple.
template
<
typename
T1
,
typename
T2
>
struct
std_pair_to_tuple
{
static
PyObject*
convert
(std::pair<
T1
,
T2
>
const
& p)
{
return
boost::python::incref
(
boost::python::make_tuple
(p.
first
, p.
second
).
ptr
());
}
static
PyTypeObject
const
*
get_pytype
() {
return
&PyTuple_Type; }
};
//
Helper for convenience.
template
<
typename
T1
,
typename
T2
>
struct
std_pair_to_python_converter
{
std_pair_to_python_converter
()
{
boost::python::to_python_converter<
std::pair<
T1
,
T2
>,
std_pair_to_tuple<
T1
,
T2
>,
true
//
std_pair_to_tuple has get_pytype
>();
}
};
//
Example function returning a std::pair.
std::pair<
int
,
int
>
foo
() {
return
std::pair<
int
,
int
>(
3
,
5
); }
}
//
namespace anonymous
BOOST_PYTHON_MODULE
(std_pair_ext)
{
using
namespace
boost
::python
;
std_pair_to_python_converter<
int
,
int
>();
def
(
"
foo
"
, foo);
}
Back
|
FazBrowse Home
|
New Git URL