From bf7f6bab14958923a0d26012d43c715c1eb2028d Mon Sep 17 00:00:00 2001 From: marehr Date: Wed, 8 Jan 2020 14:24:18 +0100 Subject: [PATCH 1/3] [FIX] Use enable_safe_range to indicate that span is a forwarding range --- include/seqan3/std/span | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/seqan3/std/span b/include/seqan3/std/span index a0ee859f43..22104198dd 100644 --- a/include/seqan3/std/span +++ b/include/seqan3/std/span @@ -54,6 +54,25 @@ struct is_std_array_impl> : public true_type {}; template struct is_std_array : public is_std_array_impl> {}; +} // namespace std + +#if RANGE_V3_VERSION >= 901 +namespace ranges +{ +// forward declare in case we deal with an old version (between >= 0.9.1 and < 0.10.0) of ranges v3 +#if RANGE_V3_VERSION < 1000 +template +inline constexpr bool enable_safe_range; +#endif // RANGE_V3_VERSION < 1000 + +template + requires std::is_span::value +inline constexpr bool enable_safe_range = true; +} // namespace ranges +#endif // RANGE_V3_VERSION >= 901 + +namespace std +{ template class span { public: From ed4f84121a15db414eb5e920db5e4e5711bae348 Mon Sep 17 00:00:00 2001 From: marehr Date: Wed, 8 Jan 2020 17:23:00 +0100 Subject: [PATCH 2/3] [MISC] Upgrade range-v3 submodule to 0.10.0 and increase supported version of ranges library to >=0.10.0 and < 0.11.0 --- include/seqan3/core/platform.hpp | 4 ++-- submodules/range-v3 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/seqan3/core/platform.hpp b/include/seqan3/core/platform.hpp index 60f4d3b7bc..b490b5494d 100644 --- a/include/seqan3/core/platform.hpp +++ b/include/seqan3/core/platform.hpp @@ -67,8 +67,8 @@ // Ranges [required] #if __has_include() -# define RANGE_V3_MINVERSION 900 -# define RANGE_V3_MAXVERSION 999 +# define RANGE_V3_MINVERSION 1000 +# define RANGE_V3_MAXVERSION 1099 // TODO the following doesn't actually show the current version, only its formula. How'd you do it? # define MSG "Your version: " STR(RANGE_V3_VERSION) \ "; minimum version: " STR(RANGE_V3_MINVERSION) \ diff --git a/submodules/range-v3 b/submodules/range-v3 index 598cf8436f..4d6a463bca 160000 --- a/submodules/range-v3 +++ b/submodules/range-v3 @@ -1 +1 @@ -Subproject commit 598cf8436fd8d7ff12847c90a8b17ca88f02e0cd +Subproject commit 4d6a463bca51bc316f9b565edd94e82388206093 From 142795a3ef5a3ebecffe08aafa1badb2ed05cdf5 Mon Sep 17 00:00:00 2001 From: marehr Date: Mon, 13 Jan 2020 16:12:39 +0100 Subject: [PATCH 3/3] [DOC] Add ChangeLog and fix README of required ranges version --- CHANGELOG.md | 2 ++ README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c23fc1131..0d5e83b1a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,8 @@ If possible, provide tooling that performs the changes, e.g. a shell-script. ## API changes +* **The required version of the ranges-v3 library has increased:** We now support the versions >= 0.10.0 and < 0.11.0, + increasing the previous requirement of >= 0.5.0 and < 0.6.0. * **Customising for third party types has changes slightly:** You are only affected if you added types to `seqan3::custom::`. Please see [About Customisation](http://docs.seqan.de/seqan/3-master-user/about_customisation.html). diff --git a/README.md b/README.md index 84ecf03189..aa6f9488bf 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Please see the [online documentation](https://docs.seqan.de/seqan/3-master-user/ |**compiler** | [GCC](https://gcc.gnu.org) | ≥ 7 | no other compiler is currently supported! | |**build system** | [CMake](https://cmake.org) | ≥ 3.4 | optional, but recommended | |**required libs** | [SDSL](https://github.com/xxsds/sdsl-lite) | ≥ 3 | | -| | [Range-V3](https://github.com/ericniebler/range-v3) | ≥ 1.0 | | +| | [Range-V3](https://github.com/ericniebler/range-v3) | ≥ 0.10.0 | | |**optional libs** | [cereal](https://github.com/USCiLab/cereal) | ≥ 1.2.3 | required for serialisation and CTD support | | | [zlib](https://github.com/madler/zlib) | ≥ 1.2 | required for `*.gz` and `.bam` file support | | | [bzip2](http://www.bzip.org) | ≥ 1.0 | required for `*.bz2` file support |