Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
pybind11
Commits
c6e0cdfa
Commit
c6e0cdfa
authored
Jun 15, 2016
by
Jerry Gamache
Browse files
Allow pybind11::arg to have 0, false, or "" as default values.
parent
663513cf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
4 deletions
+13
-4
example/example11.cpp
example/example11.cpp
+1
-0
example/example11.py
example/example11.py
+3
-1
example/example11.ref
example/example11.ref
+6
-0
include/pybind11/attr.h
include/pybind11/attr.h
+3
-3
No files found.
example/example11.cpp
View file @
c6e0cdfa
...
...
@@ -58,4 +58,5 @@ void init_ex11(py::module &m) {
using
namespace
py
::
literals
;
m
.
def
(
"kw_func_udl"
,
&
kw_func
,
"x"
_a
,
"y"
_a
=
300
);
m
.
def
(
"kw_func_udl_z"
,
&
kw_func
,
"x"
_a
,
"y"
_a
=
0
);
}
example/example11.py
View file @
c6e0cdfa
...
...
@@ -6,13 +6,14 @@ import pydoc
sys
.
path
.
append
(
'.'
)
from
example
import
kw_func
,
kw_func2
,
kw_func3
,
kw_func4
,
call_kw_func
from
example
import
args_function
,
args_kwargs_function
,
kw_func_udl
from
example
import
args_function
,
args_kwargs_function
,
kw_func_udl
,
kw_func_udl_z
print
(
pydoc
.
render_doc
(
kw_func
,
"Help on %s"
))
print
(
pydoc
.
render_doc
(
kw_func2
,
"Help on %s"
))
print
(
pydoc
.
render_doc
(
kw_func3
,
"Help on %s"
))
print
(
pydoc
.
render_doc
(
kw_func4
,
"Help on %s"
))
print
(
pydoc
.
render_doc
(
kw_func_udl
,
"Help on %s"
))
print
(
pydoc
.
render_doc
(
kw_func_udl_z
,
"Help on %s"
))
kw_func
(
5
,
10
)
kw_func
(
5
,
y
=
10
)
...
...
@@ -42,3 +43,4 @@ args_function('arg1_value', 'arg2_value', 3)
args_kwargs_function
(
'arg1_value'
,
'arg2_value'
,
arg3
=
'arg3_value'
,
arg4
=
4
)
kw_func_udl
(
x
=
5
,
y
=
10
)
kw_func_udl_z
(
x
=
5
)
example/example11.ref
View file @
c6e0cdfa
...
...
@@ -23,6 +23,11 @@ Help on built-in function kw_func_udl in module example
kkww__ffuunncc__uuddll(...)
kw_func_udl(x : int, y : int = 300L) -> NoneType
Help on built-in function kw_func_udl_z in module example
kkww__ffuunncc__uuddll__zz(...)
kw_func_udl_z(x : int, y : int = 0L) -> NoneType
kw_func(x=5, y=10)
kw_func(x=5, y=10)
kw_func(x=5, y=10)
...
...
@@ -47,3 +52,4 @@ got keyword argument: arg3 -> arg3_value
got keyword argument: arg4 -> 4
kw_func(x=5, y=10)
kw_func(x=5, y=0)
include/pybind11/attr.h
View file @
c6e0cdfa
...
...
@@ -18,14 +18,14 @@ template <typename T> struct arg_t;
/// Annotation for keyword arguments
struct
arg
{
constexpr
arg
(
const
char
*
name
)
:
name
(
name
)
{
}
constexpr
explicit
arg
(
const
char
*
name
)
:
name
(
name
)
{
}
template
<
typename
T
>
constexpr
arg_t
<
T
>
operator
=
(
const
T
&
value
)
const
{
return
{
name
,
value
};
}
template
<
typename
T
,
size_t
N
>
constexpr
arg_t
<
const
T
*>
operator
=
(
T
const
(
&
value
)[
N
])
const
{
return
operator
=
((
const
T
*
)
value
);
}
;
}
const
char
*
name
;
};
...
...
@@ -40,7 +40,7 @@ template <typename T> struct arg_t : public arg {
inline
namespace
literals
{
/// String literal version of arg
constexpr
arg
operator
""
_a
(
const
char
*
name
,
size_t
)
{
return
{
name
};
}
constexpr
arg
operator
""
_a
(
const
char
*
name
,
size_t
)
{
return
{
arg
(
name
)
};
}
}
/// Annotation for methods
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment