c++ – error when using webrtc lib into my QT project

i got a webrtc lib that have been compiled and could be use directly,My pure C++ project could use it, and i got many errors when using webrtc lib into my QT project,it compile error at the sigslot.h,how to solve it?

the error is at the WebRTC\include\rtc_base\third_party\sigslot.h file

  // time.
  template <typename... Args>
  void emit(Args... args) const {
    typedef void (*em_t)(const _opaque_connection*, Args...);
    union_caster<emit_t, em_t> caster;
    caster.from = pemit;
    (caster.to)(this, args...);
  }
Severity    Code    Description Project File    Line    Suppression State
Error   C2988   unrecognizable template declaration/definition  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2143   syntax error: missing ')' before '...'  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2143   syntax error: missing ';' before '...'  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2182   'Args': this use of 'void' is not valid qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2365   'Args': redefinition; previous definition was 'template parameter'  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2238   unexpected token(s) preceding ';'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2059   syntax error: '...' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2059   syntax error: ')'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2334   unexpected token(s) preceding '{'; skipping apparent function body  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    327 
Error   C2143   syntax error: missing ')' before '...'  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    560 
Error   C2143   syntax error: missing ';' before '...'  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    560 
Error   C2182   'Args': this use of 'void' is not valid qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    560 
Error   C2059   syntax error: ')'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    560 
Error   C2334   unexpected token(s) preceding '{'; skipping apparent function body  qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    560 
Error   C2327   'sigslot::signal_with_thread_policy<mt_policy,Args...>::Args': is not a type name, static, or enumerator    qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    570 
Error   C2760   syntax error: '...' was unexpected here; expected ')'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    570 
Error   C2760   syntax error: ')' was unexpected here; expected ';' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    570 
Error   C3878   syntax error: unexpected token ')' following 'expression_statement' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    570 
Error   C2327   'sigslot::signal_with_thread_policy<sigslot::single_threaded,rtc::AsyncResolverInterface *>::Args': is not a type name, static, or enumerator   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\third_party\sigslot\sigslot.h    570 
Error   C2589   '(': illegal token on right side of '::'    qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C2760   syntax error: '(' was unexpected here; expected ':' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C3878   syntax error: unexpected token '(' following 'expression'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C2760   syntax error: ')' was unexpected here; expected ';' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C3878   syntax error: unexpected token ')' following 'jump_statement'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C3878   syntax error: unexpected token ')' following 'expression_statement' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C2760   syntax error: ':' was unexpected here; expected ';' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Error   C3878   syntax error: unexpected token ':' following 'expression_statement' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\api\array_view.h  280 
Warning C4003   not enough arguments for function-like macro invocation 'max'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 115 
Warning C4003   not enough arguments for function-like macro invocation 'max'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 118 
Warning C4003   not enough arguments for function-like macro invocation 'min'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 118 
Error   C2589   '(': illegal token on right side of '::'    qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 113 
Error   C2760   syntax error: '(' was unexpected here; expected ')' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 113 
Error   C2760   syntax error: '(' was unexpected here; expected ':' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 113 
Error   C2760   syntax error: ')' was unexpected here; expected ';' qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 113 
Error   C3878   syntax error: unexpected token ')' following 'jump_statement'   qt_project_for_webrtc_practise  D:\lib\WebRTC\include\rtc_base\numerics\safe_conversions_impl.h 113 

my project config

enter image description here

enter image description here

enter image description here

Read more here: Source link