Tweak partial to avoid macos build failure
Summary:
[Folly] Tweak `partial` to avoid a poorly-understood build failure on macos with clang++ and libc++.
```
In file included from folly/functional/test/PartialTest.cpp:19:
In file included from folly/folly/Function.h:230:
folly/functional/Invoke.h:65:25: error: attempt to use a deleted function
noexcept(noexcept(std::mem_fn(f)(static_cast<A&&>(a)...)))
^
folly/functional/Partial.h:41:19: note: in instantiation of exception specification for 'operator()<int (int &, int &, int &), Foo, const Foo &, const int &, const int &, int &>' requested here
-> decltype(invoke(
^
folly/functional/Partial.h:65:56: note: while substituting deduced template arguments into function template 'invokeForward' [with Self = const folly::detail::partial::Partial<int (Foo::*)(int &, int &, int &), std::__1::tuple<Foo, int, int> > &, I = <0, 1, 2>, Args = <int &>]
auto operator()(CArgs&&... cargs) const& -> decltype(invokeForward(
^
folly/functional/test/PartialTest.cpp:59:21: note: while substituting deduced template arguments into function template 'operator()' [with CArgs = <int &>]
EXPECT_EQ(1234, p0(four));
^
type_traits:1743:5: note: '~__nat' has been explicitly marked deleted here
~__nat() = delete;
^
```
Reviewed By: chadaustin
Differential Revision: D23722804
fbshipit-source-id: 7b3d6307a46fa12eadea13db327f10aafb89691c
Showing
Please register or sign in to comment