Skip to content

fix(zenoh_cpp_vendor): bump zenoh-cpp to fix MSVC 19.44 build failure#968

Draft
YuanYuYuan wants to merge 6 commits into
ros2:rollingfrom
ZettaScaleLabs:fix/msvc-bytes-forward-v2
Draft

fix(zenoh_cpp_vendor): bump zenoh-cpp to fix MSVC 19.44 build failure#968
YuanYuYuan wants to merge 6 commits into
ros2:rollingfrom
ZettaScaleLabs:fix/msvc-bytes-forward-v2

Conversation

@YuanYuYuan
Copy link
Copy Markdown
Contributor

@YuanYuYuan YuanYuYuan commented Apr 14, 2026

Summary

Root Cause

MSVC 19.44 (VS 2022 17.14, 14.44.35207), shipped with the ROS 2 buildfarm, introduced conformance tightening that rejects std::forward<D>(d) when D is a deduced local lambda type:

error C2665: 'std::forward': no overloaded function could convert all the argument types
error C3536: 'drop': cannot be used before it is initialized

Three Bytes move constructors in bytes.hxx used this pattern. The fix replaces std::forward<D>(d) with std::move(d), which is semantically equivalent (since D is never a reference here) and accepted by all compilers.

Failure Reference

https://ci.ros2.org/job/ci_windows/27578/console

Key Changes

  • zenoh_cpp_vendor/CMakeLists.txt: VCS_VERSION for zenoh_cpp_vendor updated from af381b42 (zenoh-cpp 1.9.0 tag) to a3cd1a2d (one commit past the tag, containing the MSVC fix).

The zenoh-c pinned commits are unchanged. The zenoh-cpp af381b42a3cd1a2d delta touches only bytes.hxx and is fully compatible with zenoh-c 1.8.

Breaking Changes

None

Did you use Generative AI?

Yes. Claude (claude-sonnet-4-6) via Claude Code was used to assist with creating an initial prototype version of the changes contained in this PR.

eclipse-zenoh/zenoh-cpp#776 fixed std::forward<D>(d) → std::move(d)
in three Bytes move constructors. MSVC 19.44 (VS 2022 17.14, used by
the ROS 2 Windows buildfarm) rejects std::forward on deduced lambda
types with C2665/C3536. The fix is merged at a3cd1a2d.

Bump zenoh_cpp_vendor to that commit to unblock ci_windows builds.
@YuanYuYuan YuanYuYuan requested a review from JEnoch April 14, 2026 11:34
@JEnoch
Copy link
Copy Markdown
Contributor

JEnoch commented Apr 14, 2026

Pulls: #968
Gist: https://gist.githubusercontent.com/JEnoch/22d54eea04a15c10f76d58850c4fcfa6/raw/ce142f3b8b7bb56b39c62ae31e1d2aefb056305e/ros2.repos
BUILD args: "--continue-on-error" --packages-above-and-dependencies zenoh_cpp_vendor zenoh_security_tools rmw_zenoh_cpp
TEST args: --packages-above zenoh_cpp_vendor zenoh_security_tools rmw_zenoh_cpp
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/18963

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status frozen and timeout for unkown reason
    • 2d try Build Status

@JEnoch
Copy link
Copy Markdown
Contributor

JEnoch commented Apr 14, 2026

Feedback from @jmachowinski via Zulip:

I tried the exact same fix as in the PR. It did not work for me. Msvc does not consider the lambda movable and refused to compile. The fix that worked in the end was to replace the lambda by small structures that provide the () operator. I'll submit a PR tomorrow.

@JEnoch JEnoch marked this pull request as draft April 14, 2026 20:14
@YuanYuYuan
Copy link
Copy Markdown
Contributor Author

Feedback from @jmachowinski via Zulip:

I tried the exact same fix as in the PR. It did not work for me. Msvc does not consider the lambda movable and refused to compile. The fix that worked in the end was to replace the lambda by small structures that provide the () operator. I'll submit a PR tomorrow.

The windows runner seems to build rmw_zenoh_cpp successfully.

image

@jmachowinski
Copy link
Copy Markdown

I just double checked. Your fix if not compiling on MSVC 2022.
Your runner also seemed to have used MSVC 2019 as far as I can see.

@YuanYuYuan
Copy link
Copy Markdown
Contributor Author

YuanYuYuan commented Apr 15, 2026

Hi @jmachowinski!

These are the snapshots of falling one and the patched one. The MSVC is the same 19.44.35225 which is Visual Studio 2022 version 17.14 with toolset version 14.44.

image

image

And it can build on my local Windows machine with Visual Studio 2022. Can you clarify the issue you faced?

@jmachowinski
Copy link
Copy Markdown

This is odd.

I run windows 11 with the same compiler :

(pixi_ros2_rolling) C:\ros2\rolling>cl
Microsoft (R) C/C++-Optimierungscompiler Version 19.44.35225 für x64
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Syntax: cl [ Option... ] Dateiname... [ /link Linkeroption... ]

I am using your version of the fix:

(pixi_ros2_rolling) C:\ros2\rolling\src\ros2\rmw_zenoh>git show HEAD
commit 135dd9fb277e2433fe341da61d91d6de016d629b (HEAD -> fix/msvc-bytes-forward-v2, zeta/fix/msvc-bytes-forward-v2)
Author: yuanyuyuan <az6980522@gmail.com>
Date:   Tue Apr 14 17:24:32 2026 +0800

    fix(zenoh_cpp_vendor): bump zenoh-cpp to fix MSVC 19.44 build failure

    eclipse-zenoh/zenoh-cpp#776 fixed std::forward<D>(d) → std::move(d)
    in three Bytes move constructors. MSVC 19.44 (VS 2022 17.14, used by
    the ROS 2 Windows buildfarm) rejects std::forward on deduced lambda
    types with C2665/C3536. The fix is merged at a3cd1a2d.

    Bump zenoh_cpp_vendor to that commit to unblock ci_windows builds.

diff --git a/zenoh_cpp_vendor/CMakeLists.txt b/zenoh_cpp_vendor/CMakeLists.txt
index 07c8f50..aafa286 100644
--- a/zenoh_cpp_vendor/CMakeLists.txt
+++ b/zenoh_cpp_vendor/CMakeLists.txt
@@ -52,7 +52,7 @@ else()

   ament_vendor(zenoh_cpp_vendor
     VCS_URL https://github.com/eclipse-zenoh/zenoh-cpp
-    VCS_VERSION af381b420cc8837ac7da42c9984594ef8f110e90
+    VCS_VERSION a3cd1a2d05a65f575086af209a71a8c211ccd896
     CMAKE_ARGS
       -DZENOHCXX_ZENOHC=OFF
   )

I deleted zenoh_cpp_vendor from build / install to be sure the fix is picked up, and when I

cat C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx

I can see it is the patched version :

    template <class Allocator>
    Bytes(std::vector<uint8_t, Allocator>&& v) : Bytes() {
        std::vector<uint8_t, Allocator>* ptr = new std::vector<uint8_t, Allocator>(std::move(v));
        auto d = [p = ptr]() mutable { delete p; };
        using D = decltype(d);
        using Dval = std::remove_reference_t<D>;
        using DroppableType = typename detail::closures::Droppable<Dval>;
        auto drop = DroppableType::into_context(std::move(d));
        ::z_bytes_from_buf(interop::as_owned_c_ptr(*this), ptr->data(), ptr->size(),
                           detail::closures::_zenoh_drop_with_context, drop);
    }

but the compile fails for me :

(pixi_ros2_rolling) C:\ros2\rolling\build\rmw_zenoh_cpp>cmake --build . --config Release
MSBuild-Version 17.14.40+3e7442088 für .NET Framework

  rmw_client_data.cpp
  rmw_publisher_data.cpp
C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33): error C2665: "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>": Keine überladene Funktion konnte alle Argumenttypen konverti
eren [C:\ros2\rolling\build\rmw_zenoh_cpp\rmw_zenoh_cpp.vcxproj]
  (Quelldatei „../../src/ros2/rmw_zenoh/rmw_zenoh_cpp/src/detail/rmw_client_data.cpp“ wird kompiliert)
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(67,50):
      kann "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" sein
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" : Konvertierung von Argument 1 von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1> &&" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(67,50):
      oder "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)"
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)" : Konvertierung von Argument 1 von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1> &" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      bei Anpassung der Argumentliste "(_Ty)"
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      der Vorlageninstanziierungskontext (der älteste zuerst) ist
          C:\ros2\rolling\src\ros2\rmw_zenoh\rmw_zenoh_cpp\src\detail\rmw_client_data.cpp(400,40):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::Bytes::Bytes<std::allocator<uint8_t>>(std::vector<uint8_t,std::allocator<uint8_t>> &&)" der Funktions-Vorlage.
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(71,36):
          Siehe Verweis auf die gerade kompilierte Instanziierung "void *zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::into_context<zenoh::Bytes::{ctor}::<lambda_1>>(DD &&)" der Funktions-Vo
  rlage.
          with
          [
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(58,53):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::Droppable<_Ty>(DD &&)" der Funktions-Vorlage.
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>,
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]

C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33): error C2665: "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>": Keine überladene Funktion konnte alle Argumenttypen konverti
eren [C:\ros2\rolling\build\rmw_zenoh_cpp\rmw_zenoh_cpp.vcxproj]
  (Quelldatei „../../src/ros2/rmw_zenoh/rmw_zenoh_cpp/src/detail/rmw_publisher_data.cpp“ wird kompiliert)
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(111,74):
      kann "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" sein
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" : Konvertierung von Argument 1 von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1> &&" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(111,74):
      oder "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)"
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)" : Konvertierung von Argument 1 von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1> &" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      bei Anpassung der Argumentliste "(_Ty)"
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      der Vorlageninstanziierungskontext (der älteste zuerst) ist
          C:\ros2\rolling\src\ros2\rmw_zenoh\rmw_zenoh_cpp\src\detail\rmw_publisher_data.cpp(322,27):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::Bytes::Bytes<rmw_zenoh_cpp::PublisherData::publish::<lambda_2>>(uint8_t *,size_t,Deleter)" der Funktions-Vorlage.
          with
          [
              Deleter=rmw_zenoh_cpp::PublisherData::publish::<lambda_2>
          ]
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(115,36):
          Siehe Verweis auf die gerade kompilierte Instanziierung "void *zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::into_context<zenoh::Bytes::{ctor}::<lambda_1>>(DD &&)" der Funktions-Vo
  rlage.
          with
          [
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(58,53):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::Droppable<_Ty>(DD &&)" der Funktions-Vorlage.
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>,
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]

  rmw_service_data.cpp
C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33): error C2665: "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>": Keine überladene Funktion konnte alle Argumenttypen konverti
eren [C:\ros2\rolling\build\rmw_zenoh_cpp\rmw_zenoh_cpp.vcxproj]
  (Quelldatei „../../src/ros2/rmw_zenoh/rmw_zenoh_cpp/src/detail/rmw_service_data.cpp“ wird kompiliert)
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(67,50):
      kann "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" sein
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(zenoh::Bytes::{ctor}::<lambda_1> &&)" : Konvertierung von Argument 1 von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1> &&" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(67,50):
      oder "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)"
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
          "zenoh::Bytes::{ctor}::<lambda_1>::<lambda_1>(const zenoh::Bytes::{ctor}::<lambda_1> &)" : Konvertierung von Argument 1 von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1> &" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Ursache: Konvertierung von "_Ty" in "const zenoh::Bytes::{ctor}::<lambda_1>" nicht möglich
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
              C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,50):
              Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      bei Anpassung der Argumentliste "(_Ty)"
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>
          ]
      C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(52,33):
      der Vorlageninstanziierungskontext (der älteste zuerst) ist
          C:\ros2\rolling\src\ros2\rmw_zenoh\rmw_zenoh_cpp\src\detail\rmw_service_data.cpp(453,33):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::Bytes::Bytes<std::allocator<uint8_t>>(std::vector<uint8_t,std::allocator<uint8_t>> &&)" der Funktions-Vorlage.
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\api\bytes.hxx(71,36):
          Siehe Verweis auf die gerade kompilierte Instanziierung "void *zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::into_context<zenoh::Bytes::{ctor}::<lambda_1>>(DD &&)" der Funktions-Vo
  rlage.
          with
          [
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]
          C:\ros2\rolling\install\opt\zenoh_cpp_vendor\include\zenoh\detail\closures.hxx(58,53):
          Siehe Verweis auf die gerade kompilierte Instanziierung "zenoh::detail::closures::Droppable<zenoh::Bytes::{ctor}::Dval>::Droppable<_Ty>(DD &&)" der Funktions-Vorlage.
          with
          [
              _Ty=zenoh::Bytes::{ctor}::<lambda_1>,
              DD=zenoh::Bytes::{ctor}::<lambda_1>
          ]

  Code wird generiert...
  rmw_zenoh_cpp_test_fixture.vcxproj -> C:\ros2\rolling\build\rmw_zenoh_cpp\Release\rmw_zenoh_cpp_test_fixture.dll
  rmw_zenohd.vcxproj -> C:\ros2\rolling\build\rmw_zenoh_cpp\Release\rmw_zenohd.exe

(pixi_ros2_rolling) C:\ros2\rolling\build\rmw_zenoh_cpp>

These errors go away if I apply the patches proposed in eclipse-zenoh/zenoh-cpp#778

@jmachowinski
Copy link
Copy Markdown

I found the difference !
I was testing the changes from ros2/rcutils#548.

These change the minimum c++ version for all ros packages to c++20 and C17.
As you use rcutils, rmw_zenoh is affected by this change.

If I remove the patches from rcutils, it compiles. If I manually change the c++ version in the CMakeLists.txt in rmw_zenoh_cpp to 20 I get the same compile errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants