-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C++20 "standard" conform #49
Labels
Comments
marehr
added a commit
to marehr/seqan3
that referenced
this issue
Apr 9, 2020
This fixes part of seqan/product_backlog#49 and fixes also part of seqan#1549.
marehr
added a commit
to marehr/seqan3
that referenced
this issue
Apr 9, 2020
This fixes part of seqan/product_backlog#49 and fixes also part of seqan#1549.
marehr
added a commit
to marehr/seqan3
that referenced
this issue
Apr 9, 2020
This fixes part of seqan/product_backlog#49 and fixes also part of seqan#1549.
marehr
changed the title
As a Library we want to be C++20 "standard" conform
C++20 "standard" conform
Apr 29, 2020
This was referenced May 10, 2020
marehr
added a commit
to marehr/seqan3
that referenced
this issue
May 19, 2020
With this PR the std headers have the same entities defined for `-std=c++17` as well as `-std=c++2a`. This is PART of seqan/product_backlog#49
marehr
added a commit
to marehr/seqan3
that referenced
this issue
May 19, 2020
With this PR the std headers have the same entities defined for `-std=c++17` as well as `-std=c++2a`. This is PART of seqan/product_backlog#49
marehr
added a commit
to marehr/seqan3
that referenced
this issue
May 25, 2020
With this PR the std headers have the same entities defined for `-std=c++17` as well as `-std=c++2a`. This is PART of seqan/product_backlog#49
This is done; since gcc-10 and gcc-11 is C++20 conforming enough for us. Other compiler do not work yet, because of some major pending bugs. See #127 for example. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
As a Library we want to be C++20 "standard" conform
From the beginning of seqan3 development, we decided to use the ranges library and the language feature of concepts that we knew that will be part of the C++ standard at one point.
Initially, we expected it to be in the then upcoming C++17 standard but it was postponed to C++20.
During the standardisation process, some names, syntax and paradigms changed within the ranges and concept proposal. Thus, this epic issue will keep track of those changes to make the seqan3 library "standard" conform.
Acceptance Criteria
Tasks
std::span
should have signaturestd::span<typename span_tp, size_t span_extent>
instead ofstd::span<typename span_tp, ptrdiff_t span_extent>
[MISC] Use correct definition of std::span<T, E> (extent should be std::size_t) seqan3#1712std::(ranges::range|iter)_(size|difference|value|reference|rvalue_reference)_t
instead ofseqan3::(size_type|difference_type|value_type|reference|rvalue_reference|const_reference)_t
. Deprecatetype_traits/iterator.hpp
seqan3#1549seqan3/std/*
headers Remove dependencies of seqan3 inseqan3/std/*
headers #135std::
versions of views and ranges instead of ranges-v3std::ranges::view_base
instead of::ranges::view_base
[FIX] use std::ranges::view_base instead of ranges one seqan3#1906std::ranges::ref_view
instead of::ranges::ref_view
[FIX] use std::ranges::ref_view instead of ranges one seqan3#1905std
namespace Move C++20 things intostd
namespace #134ranges::enable_safe_range
asranges::enable_borrowed_range
. Rename enable_safe_range to enable_borrowed_range. #48seqan3::forwarding_range
bystd::ranges::borrowed_range
. [FIX] use std::ranges::borrowed_range instead of seqan3::forwarding_range seqan3#2038std::default_constructible
->std::default_initializable
std::boolean
-> this is exposition-only and calledboolean-testable
; either throw all usages away or implement it inseqan3
namespace Simplify seqan3/std/concepts seqan3#2023std::detail::weakly_equality_comparable_with
-> this is exposition-only and calledweakly-equality-comparable-with
; either throw all usages away or implement it inseqan3
namespace (fun-fact it is already implemented in include/seqan3/core/concept/core_language.hpp) Simplify seqan3/std/concepts seqan3#2023std::readable
->std::indirectly_readable
std::writable
->std::indirectly_writable
std::back_inserter
->std::cpp20::back_inserter
(back_inserter has a new behaviour since cxx20; it is default initializable)std::ranges::default_sentinel
->std::default_sentinel
(we wrongly assume that these are in std::ranges namespace, even though they are in std namespace)std::ranges::default_sentinel_t
->std::default_sentinel_t
(we wrongly assume that these are in std::ranges namespace, even though they are in std namespace)std::ranges::all_view
->std::views::all_t
std::ranges
when in C++17 mode. (std::forward_iterator, ...)Definition of Done
The text was updated successfully, but these errors were encountered: