I am trying build a c++ client, but I am getting below error. any idea what could have went wrong?
4%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/grammar.cpp.o
[ 8%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/parser.cpp.o
[ 12%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/writer.cpp.o
[ 16%] Linking CXX static library libsdptransform.a
[ 16%] Built target sdptransform
[ 20%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o
In file included from /webrtc-checkout/src/api/units/time_delta.h:22,
from /webrtc/mediasoup/webrtc-checkout/src/api/units/timestamp.h:21,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:16,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:44: error: ‘is_floating_point_v’ is not a member of ‘std’; did you mean ‘is_floating_point’?
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~~~~~~~~~~~~~~~~~~
| is_floating_point
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:44: error: ‘is_floating_point_v’ is not a member of ‘std’; did you mean ‘is_floating_point’?
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~~~~~~~~~~~~~~~~~~
| is_floating_point
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:64: error: template argument 1 is invalid
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:65: error: expected identifier before ‘>’ token
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:69: error: expected unqualified-id before ‘=’ token
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:44: error: ‘is_integral_v’ is not a member of ‘std’; did you mean ‘is_integral’?
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~~~~~~~~~~~~
| is_integral
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:44: error: ‘is_integral_v’ is not a member of ‘std’; did you mean ‘is_integral’?
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~~~~~~~~~~~~
| is_integral
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:58: error: template argument 1 is invalid
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:59: error: expected identifier before ‘>’ token
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:63: error: expected unqualified-id before ‘=’ token
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_image.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:38: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^~~~~~~~~
| is_same
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:48: error: expected primary-expression before ‘decltype’
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^~~~~~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:47: error: expected ‘;’ at end of member declaration
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^
| ;
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:68: error: expected unqualified-id before ‘,’ token
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:34: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:34: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:73: error: template argument 1 is invalid
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:75: error: expected identifier before ‘&&’ token
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:83:33: error: expected ‘>’
83 | std::is_abstract_v,
| ^~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:84:33: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
84 | T>::type* = nullptr>
| ^~~~
| wctype
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:15: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:54: error: template argument 1 is invalid
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:56: error: expected identifier before ‘&&’ token
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:96:13: error: expected ‘>’
96 | webrtc_make_ref_counted_internal::HasAddRefAndRelease::value,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:97:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
97 | T>::type* = nullptr>
| ^~~~
| wctype
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:15: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:54: error: template argument 1 is invalid
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:56: error: expected identifier before ‘&&’ token
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:109:13: error: expected ‘>’ before ‘!’ token
109 | !webrtc_make_ref_counted_internal::HasAddRefAndRelease::value,
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:111:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
111 | T>::type* = nullptr>
| ^~~~
| wctype
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_image.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h: In static member function ‘static rtc::scoped_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(const vector_type&)’:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:91:19: error: ‘make_ref_counted’ is not a member of ‘rtc’
91 | return rtc::make_ref_counted(entries);
| ^~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:91:40: error: expected primary-expression before ‘>’ token
91 | return rtc::make_ref_counted(entries);
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h: In static member function ‘static rtc::scoped_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(webrtc::RtpPacketInfos::vector_type&&)’:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:100:19: error: ‘make_ref_counted’ is not a member of ‘rtc’
100 | return rtc::make_ref_counted(std::move(entries));
| ^~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:100:40: error: expected primary-expression before ‘>’ token
100 | return rtc::make_ref_counted(std::move(entries));
| ^
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/video_codec.h:22,
from /webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/video_encoder.h:27,
from /webrtc/mediasoup/webrtc-checkout/src/modules/video_coding/include/video_codec_interface.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/modules/video_coding/encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_frame.h:19,
from /webrtc/mediasoup/webrtc-checkout/src/api/frame_transformer_interface.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/rtp_receiver_interface.h:22,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:6,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h: At global scope:
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h:57:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
57 | inline constexpr ScalabilityMode kAllScalabilityModes = {
| ^~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h:89:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
89 | inline constexpr size_t kScalabilityModeCount =
| ^~~~~~
make[2]: *** [CMakeFiles/mediasoupclient.dir/build.make:76: CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2
make: *** [Makefile:136: all] Error 2