Mark P0771 as complete; we already did this - I just added tests to be sure

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@347343 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow
2018-11-20 20:37:07 +00:00
parent c1f6028e00
commit 3b4ca5b4af
2 changed files with 15 additions and 3 deletions

View File

@@ -12,7 +12,7 @@
// class function<R(ArgTypes...)> // class function<R(ArgTypes...)>
// function(const function& f); // function(const function& f);
// function(function&& f); // function(function&& f); // noexcept in C++20
#include <functional> #include <functional>
#include <memory> #include <memory>
@@ -109,6 +109,10 @@ int main()
assert(globalMemCounter.checkOutstandingNewEq(1)); assert(globalMemCounter.checkOutstandingNewEq(1));
assert(f.target<A>()); assert(f.target<A>());
assert(f.target<int(*)(int)>() == 0); assert(f.target<int(*)(int)>() == 0);
LIBCPP_ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#if TEST_STD_VER > 17
ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#endif
std::function<int(int)> f2 = std::move(f); std::function<int(int)> f2 = std::move(f);
assert(A::count == 1); assert(A::count == 1);
assert(globalMemCounter.checkOutstandingNewEq(1)); assert(globalMemCounter.checkOutstandingNewEq(1));
@@ -129,6 +133,10 @@ int main()
assert(A::count == 1); assert(A::count == 1);
assert(f.target<A>() == nullptr); assert(f.target<A>() == nullptr);
assert(f.target<Ref>()); assert(f.target<Ref>());
LIBCPP_ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#if TEST_STD_VER > 17
ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#endif
std::function<int(int)> f2(std::move(f)); std::function<int(int)> f2(std::move(f));
assert(A::count == 1); assert(A::count == 1);
assert(f2.target<A>() == nullptr); assert(f2.target<A>() == nullptr);
@@ -144,6 +152,10 @@ int main()
std::function<int(int)> f(p); std::function<int(int)> f(p);
assert(f.target<A>() == nullptr); assert(f.target<A>() == nullptr);
assert(f.target<Ptr>()); assert(f.target<Ptr>());
LIBCPP_ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#if TEST_STD_VER > 17
ASSERT_NOEXCEPT(std::function<int(int)>(std::move(f)));
#endif
std::function<int(int)> f2(std::move(f)); std::function<int(int)> f2(std::move(f));
assert(f2.target<A>() == nullptr); assert(f2.target<A>() == nullptr);
assert(f2.target<Ptr>()); assert(f2.target<Ptr>());

View File

@@ -118,7 +118,7 @@
<tr><td><a href="https://wg21.link/P0602R4">P0602R4</a></td><td>LWG</td><td>variant and optional should propagate copy/move triviality</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0602R4">P0602R4</a></td><td>LWG</td><td>variant and optional should propagate copy/move triviality</td><td>San Diego</td><td><i> </i></td><td></td></tr>
<tr><td><a href="https://wg21.link/P0608R3">P0608R3</a></td><td>LWG</td><td>A sane variant converting constructor</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0608R3">P0608R3</a></td><td>LWG</td><td>A sane variant converting constructor</td><td>San Diego</td><td><i> </i></td><td></td></tr>
<tr><td><a href="https://wg21.link/P0655R1">P0655R1</a></td><td>LWG</td><td>visit&lt;R&gt;: Explicit Return Type for visit</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0655R1">P0655R1</a></td><td>LWG</td><td>visit&lt;R&gt;: Explicit Return Type for visit</td><td>San Diego</td><td><i> </i></td><td></td></tr>
<tr><td><a href="https://wg21.link/P0771R1">P0771R1</a></td><td>LWG</td><td>std::function move constructor should be noexcept</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0771R1">P0771R1</a></td><td>LWG</td><td>std::function move constructor should be noexcept</td><td>San Diego</td><td>Complete</td><td>6.0</td></tr>
<tr><td><a href="https://wg21.link/P0896R4">P0896R4</a></td><td>LWG</td><td>The One Ranges Proposal</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0896R4">P0896R4</a></td><td>LWG</td><td>The One Ranges Proposal</td><td>San Diego</td><td><i> </i></td><td></td></tr>
<tr><td><a href="https://wg21.link/P0899R1">P0899R1</a></td><td>LWG</td><td>P0899R1 - LWG 3016 is not a defect</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0899R1">P0899R1</a></td><td>LWG</td><td>P0899R1 - LWG 3016 is not a defect</td><td>San Diego</td><td><i> </i></td><td></td></tr>
<tr><td><a href="https://wg21.link/P0919R3">P0919R3</a></td><td>LWG</td><td>Heterogeneous lookup for unordered containers</td><td>San Diego</td><td><i> </i></td><td></td></tr> <tr><td><a href="https://wg21.link/P0919R3">P0919R3</a></td><td>LWG</td><td>Heterogeneous lookup for unordered containers</td><td>San Diego</td><td><i> </i></td><td></td></tr>
@@ -291,7 +291,7 @@
<!-- <tr><td></td><td></td><td></td><td></td></tr> --> <!-- <tr><td></td><td></td><td></td><td></td></tr> -->
</table> </table>
<p>Last Updated: 12-Nov-2018</p> <p>Last Updated: 18-Nov-2018</p>
</div> </div>
</body> </body>
</html> </html>