This was disabled in D139545.
Details
Details
- Reviewers
philnik - Group Reviewers
Restricted Project - Commits
- rG0c731b0c00f5: [libc++][CI] Fixes robust against ADL for C++03.
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
include/__functional/invoke.h lines 431 and 438 are the only two places
template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> { typedef __nothrow_invokable_r_imp _ThisT; template <class _Tp> static void __test_noexcept(_Tp) _NOEXCEPT; static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>( // 431 _VSTD::__invoke(declval<_Fp>(), declval<_Args>()...))); }; template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> { static const bool value = noexcept( / 438 _VSTD::__invoke(declval<_Fp>(), declval<_Args>()...)); };
Comment Actions
IMO we should fix the code here. In C++03 the values are always false anyways, so we could just make this
template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> { typedef __nothrow_invokable_r_imp _ThisT; template <class _Tp> static void __test_noexcept(_Tp) _NOEXCEPT; #ifdef _LIBCPP_CXX03_LANG static const bool value = false; #else static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>(_VSTD::__invoke(declval<_Fp>(), declval<_Args>()...))); #endif }; template <class _Ret, class _Fp, class ..._Args> struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> { #ifdef _LIBCPP_CXX03_LANG static const bool value = false; #else static const bool value = noexcept(_VSTD::__invoke(declval<_Fp>(), declval<_Args>()...)); #endif };
or something similar.