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
046267c6
Commit
046267c6
authored
Aug 16, 2019
by
Sergei Lebedev
Committed by
Wenzel Jakob
Aug 16, 2019
Browse files
Added .empty() to all collection types (#1887)
parent
08b0bda4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
0 deletions
+5
-0
include/pybind11/pytypes.h
include/pybind11/pytypes.h
+5
-0
No files found.
include/pybind11/pytypes.h
View file @
046267c6
...
@@ -1202,6 +1202,7 @@ public:
...
@@ -1202,6 +1202,7 @@ public:
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate tuple object!"
);
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate tuple object!"
);
}
}
size_t
size
()
const
{
return
(
size_t
)
PyTuple_Size
(
m_ptr
);
}
size_t
size
()
const
{
return
(
size_t
)
PyTuple_Size
(
m_ptr
);
}
bool
empty
()
const
{
return
size
()
==
0
;
}
detail
::
tuple_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
tuple_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
tuple_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
detail
::
tuple_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
...
@@ -1221,6 +1222,7 @@ public:
...
@@ -1221,6 +1222,7 @@ public:
explicit
dict
(
Args
&&
...
args
)
:
dict
(
collector
(
std
::
forward
<
Args
>
(
args
)...).
kwargs
())
{
}
explicit
dict
(
Args
&&
...
args
)
:
dict
(
collector
(
std
::
forward
<
Args
>
(
args
)...).
kwargs
())
{
}
size_t
size
()
const
{
return
(
size_t
)
PyDict_Size
(
m_ptr
);
}
size_t
size
()
const
{
return
(
size_t
)
PyDict_Size
(
m_ptr
);
}
bool
empty
()
const
{
return
size
()
==
0
;
}
detail
::
dict_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
detail
::
dict_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
detail
::
dict_iterator
end
()
const
{
return
{};
}
detail
::
dict_iterator
end
()
const
{
return
{};
}
void
clear
()
const
{
PyDict_Clear
(
ptr
());
}
void
clear
()
const
{
PyDict_Clear
(
ptr
());
}
...
@@ -1241,6 +1243,7 @@ class sequence : public object {
...
@@ -1241,6 +1243,7 @@ class sequence : public object {
public:
public:
PYBIND11_OBJECT_DEFAULT
(
sequence
,
object
,
PySequence_Check
)
PYBIND11_OBJECT_DEFAULT
(
sequence
,
object
,
PySequence_Check
)
size_t
size
()
const
{
return
(
size_t
)
PySequence_Size
(
m_ptr
);
}
size_t
size
()
const
{
return
(
size_t
)
PySequence_Size
(
m_ptr
);
}
bool
empty
()
const
{
return
size
()
==
0
;
}
detail
::
sequence_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
sequence_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
sequence_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
detail
::
sequence_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
...
@@ -1254,6 +1257,7 @@ public:
...
@@ -1254,6 +1257,7 @@ public:
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate list object!"
);
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate list object!"
);
}
}
size_t
size
()
const
{
return
(
size_t
)
PyList_Size
(
m_ptr
);
}
size_t
size
()
const
{
return
(
size_t
)
PyList_Size
(
m_ptr
);
}
bool
empty
()
const
{
return
size
()
==
0
;
}
detail
::
list_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
list_accessor
operator
[](
size_t
index
)
const
{
return
{
*
this
,
index
};
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
item_accessor
operator
[](
handle
h
)
const
{
return
object
::
operator
[](
h
);
}
detail
::
list_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
detail
::
list_iterator
begin
()
const
{
return
{
*
this
,
0
};
}
...
@@ -1273,6 +1277,7 @@ public:
...
@@ -1273,6 +1277,7 @@ public:
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate set object!"
);
if
(
!
m_ptr
)
pybind11_fail
(
"Could not allocate set object!"
);
}
}
size_t
size
()
const
{
return
(
size_t
)
PySet_Size
(
m_ptr
);
}
size_t
size
()
const
{
return
(
size_t
)
PySet_Size
(
m_ptr
);
}
bool
empty
()
const
{
return
size
()
==
0
;
}
template
<
typename
T
>
bool
add
(
T
&&
val
)
const
{
template
<
typename
T
>
bool
add
(
T
&&
val
)
const
{
return
PySet_Add
(
m_ptr
,
detail
::
object_or_cast
(
std
::
forward
<
T
>
(
val
)).
ptr
())
==
0
;
return
PySet_Add
(
m_ptr
,
detail
::
object_or_cast
(
std
::
forward
<
T
>
(
val
)).
ptr
())
==
0
;
}
}
...
...
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