Implement <concepts> header for C++20
commit6dc6cd99d8bb4313585a1d9b93fc7a43fb2016a9
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 Oct 2019 15:53:52 +0000 (11 15:53 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 Oct 2019 15:53:52 +0000 (11 15:53 +0000)
treeff762f43759af77cdeff475bc1f39c79ffb92540
parentb88935cf36538dbfd6f61372a59c30830dc9f990
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276892 138bc75d-0d04-0410-961f-82ee72b054a4
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]