Skip to content

Commit a8b3ff3

Browse files
authored
chore: add a couple of moves in pybind11.h (#3941)
* Add missing std::moves in enum_base methods * Remove useless move * Add one more std::move in print * Further optimize print * Some more misc optimizations
1 parent dff6fa0 commit a8b3ff3

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

include/pybind11/pybind11.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1926,7 +1926,8 @@ struct enum_base {
19261926
[](const object &arg) -> str {
19271927
handle type = type::handle_of(arg);
19281928
object type_name = type.attr("__name__");
1929-
return pybind11::str("<{}.{}: {}>").format(type_name, enum_name(arg), int_(arg));
1929+
return pybind11::str("<{}.{}: {}>")
1930+
.format(std::move(type_name), enum_name(arg), int_(arg));
19301931
},
19311932
name("__repr__"),
19321933
is_method(m_base));
@@ -1936,7 +1937,7 @@ struct enum_base {
19361937
m_base.attr("__str__") = cpp_function(
19371938
[](handle arg) -> str {
19381939
object type_name = type::handle_of(arg).attr("__name__");
1939-
return pybind11::str("{}.{}").format(type_name, enum_name(arg));
1940+
return pybind11::str("{}.{}").format(std::move(type_name), enum_name(arg));
19401941
},
19411942
name("name"),
19421943
is_method(m_base));
@@ -2576,8 +2577,8 @@ PYBIND11_NOINLINE void print(const tuple &args, const dict &kwargs) {
25762577
for (size_t i = 0; i < args.size(); ++i) {
25772578
strings[i] = str(args[i]);
25782579
}
2579-
auto sep = kwargs.contains("sep") ? kwargs["sep"] : cast(" ");
2580-
auto line = sep.attr("join")(strings);
2580+
auto sep = kwargs.contains("sep") ? kwargs["sep"] : str(" ");
2581+
auto line = sep.attr("join")(std::move(strings));
25812582

25822583
object file;
25832584
if (kwargs.contains("file")) {
@@ -2596,7 +2597,7 @@ PYBIND11_NOINLINE void print(const tuple &args, const dict &kwargs) {
25962597

25972598
auto write = file.attr("write");
25982599
write(line);
2599-
write(kwargs.contains("end") ? kwargs["end"] : cast("\n"));
2600+
write(kwargs.contains("end") ? kwargs["end"] : str("\n"));
26002601

26012602
if (kwargs.contains("flush") && kwargs["flush"].cast<bool>()) {
26022603
file.attr("flush")();
@@ -2639,7 +2640,7 @@ get_type_override(const void *this_ptr, const type_info *this_type, const char *
26392640

26402641
function override = getattr(self, name, function());
26412642
if (override.is_cpp_function()) {
2642-
cache.insert(key);
2643+
cache.insert(std::move(key));
26432644
return function();
26442645
}
26452646

0 commit comments

Comments
 (0)