Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Backport #2353 to humble (-Wpessimizing-move in intra_process_manager.hpp)

Chiusa Adatta ai principianti
#3,308 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
88/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp
Ambito
backend

Direzione di ricerca

Ispeziona experimental/intra_process_manager.hpp nei due richiami a std::move identificati alle righe 465 e 507 e confronta la modifica corrispondente in #2353 su rolling. Riproduci l’avviso con il comando ROS Humble/GCC fornito, quindi verifica che l’header venga compilato senza i due avvisi -Wpessimizing-move usando -Wall.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

humble still has the two std::move(MessageUniquePtr(ptr, deleter)) calls in experimental/intra_process_manager.hpp (lines 465 and 507 in 16.0.19) that #2353 removed on rolling. Any package that calls Publisher::publish() and builds with -Wall on GCC 13 or newer gets two warnings from the header.

Repro with the ros:humble headers and GCC 15.3:

docker build -t rclcpp-humble-gcc15 - <<'EOF'
FROM ros:humble AS ros
FROM gcc:15
COPY --from=ros /opt/ros/humble /opt/ros/humble
EOF
docker run --rm rclcpp-humble-gcc15 bash -c '
  printf "%s\n" "#include <rclcpp/rclcpp.hpp>" "#include <std_msgs/msg/int32.hpp>" \
    "void f(rclcpp::Publisher<std_msgs::msg::Int32> & p) { p.publish(std_msgs::msg::Int32{}); }" > t.cpp
  g++ -std=c++17 -fsyntax-only -Wall t.cpp \
    $(find /opt/ros/humble/include -mindepth 1 -maxdepth 1 -type d -printf "-I%p ") 2>&1 | grep pessimizing'
intra_process_manager.hpp:465:51: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
intra_process_manager.hpp:507:68: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]

Dropping the two std::move calls the same way #2353 does silences both. Could it be backported to humble?

Lingua principale
C++
Stelle
814
Fork
572
Merge medio
5g 3h
PR unite (30g)
17

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ros2/rclcpp

Tutte le issue di ros2/rclcpp

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.