Implement <concepts> header for C++20
authorJonathan Wakely <jwakely@redhat.com>
Fri, 11 Oct 2019 15:53:52 +0000 (16:53 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 11 Oct 2019 15:53:52 +0000 (16:53 +0100)
commitcfc219ae689fd94bbe1bb12686bb04fa09b93046
treeff762f43759af77cdeff475bc1f39c79ffb92540
parent02f6fdff65671ccfaf2f79092ccdfccdef1bcebf
Implement <concepts> header for C++20

There are currently no tests for [concepts.compare], but they will be
added ASAP.

* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include <concepts>.
* include/std/concepts: New header for C++20.
* include/std/version (__cpp_lib_concepts): Define.
* scripts/create_testsuite_files: Look for test files in new std
directory.
* testsuite/libstdc++-dg/conformance.exp: Likewise.
* testsuite/std/concepts/concepts.callable/invocable.cc: New test.
* testsuite/std/concepts/concepts.callable/regular_invocable.cc: New
test.
* testsuite/std/concepts/concepts.callable/relation.cc: New test.
* testsuite/std/concepts/concepts.callable/strictweakorder.cc: New
test.
* testsuite/std/concepts/concepts.lang/concept.arithmetic/
floating_point.cc: New test.
* testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.arithmetic/
signed_integral.cc: New test.
* testsuite/std/concepts/concepts.lang/concept.arithmetic/
unsigned_integral.cc: New test.
* testsuite/std/concepts/concepts.lang/concept.assignable/1.cc: New
test.
* testsuite/std/concepts/concepts.lang/concept.common/1.cc: New test.
* testsuite/std/concepts/concepts.lang/concept.commonref/1.cc: New
test.
* testsuite/std/concepts/concepts.lang/concept.constructible/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.defaultconstructible/
1.cc: New test.
* testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.destructible/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.same/1.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc:
New test.
* testsuite/std/concepts/concepts.lang/concept.swappable/
swappable_with.cc: New test.
* testsuite/std/concepts/concepts.object/copyable.cc: New test.
* testsuite/std/concepts/concepts.object/movable.cc: New test.
* testsuite/std/concepts/concepts.object/regular.cc: New test.
* testsuite/std/concepts/concepts.object/semiregular.cc: New test.

From-SVN: r276892
34 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/precompiled/stdc++.h
libstdc++-v3/include/std/concepts [new file with mode: 0644]
libstdc++-v3/include/std/version
libstdc++-v3/scripts/create_testsuite_files
libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultconstructible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc [new file with mode: 0644]
libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc [new file with mode: 0644]