#1108920 libbctoolbox-dev: cannot bind non-const lvalue reference of type "pumpstream&" to an rvalue of type "pumpstream"

Package:
libbctoolbox-dev
Source:
libbctoolbox-dev
Description:
Helper code for software by Belledonne Communications (development headers)
Submitter:
Frank Heckenbach
Date:
2026-01-09 17:15:01 UTC
Severity:
normal
Tags:
#1108920#5
Date:
2025-07-07 19:42:15 UTC
From:
To:
/usr/include/bctoolbox/logging.h: In function "pumpstream& operator<<(pumpstream&&, _Tp&&)":
/usr/include/bctoolbox/logging.h:392:16: error: cannot bind non-const lvalue reference of type "pumpstream&" to an rvalue of type "pumpstream"
  392 |         return pumpStream;
      |                ^~~~~~~~~~

Patch:
--- /usr/include/bctoolbox/logging.h
+++ /usr/include/bctoolbox/logging.h
@@ -359,7 +359,7 @@
 	template <typename _Tp>
 	friend pumpstream &operator<<(pumpstream &__os, _Tp &&__x);
 	template <typename _Tp>
-	friend pumpstream &operator<<(pumpstream &&__os, _Tp &&__x);
+	friend pumpstream &&operator<<(pumpstream &&__os, _Tp &&__x);
 	friend pumpstream &operator<<(pumpstream &__os, std::ostream &(*pf)(std::ostream &));

 private:
@@ -385,7 +385,7 @@
 }

 template <typename T>
-inline pumpstream &operator<<(pumpstream &&pumpStream, T &&x) {
+inline pumpstream &&operator<<(pumpstream &&pumpStream, T &&x) {
 	if (pumpStream.mIslogLevelEnabled) {
 		pumpStream.mOstringstream << std::forward<T>(x);
 	}

#1108920#10
Date:
2026-01-09 16:57:03 UTC
From:
To:
Tried again, still present in the stable version.

Occurs with "-std=c++23".

Current upstream version seems to have two such affected functions,
but patch is analogous.

Tried to report it upstream, but upstream requires a login, and
registration on that page is broken.