From a9e6fe4071124f3fdf2bbb32c00de3ce0abecd0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20D=C3=A9nes?= Date: Fri, 29 May 2020 17:14:06 +0300 Subject: [PATCH] utils: introduce ranges::to() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sadly, std::ranges is missing an equivalent of boost::copy_range(), so we introduce a replacement: ranges::to(). There is an existing proposal to introduce something similar to the standard library: std::ranges::to() (https://github.com/cplusplus/papers/issues/145). We name our own version similarly, so if said proposal makes it in we can just prepend std:: and be good. Signed-off-by: Botond Dénes Message-Id: <20200529141407.158960-2-bdenes@scylladb.com> --- utils/ranges.hh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 utils/ranges.hh diff --git a/utils/ranges.hh b/utils/ranges.hh new file mode 100644 index 0000000000..e7ca890700 --- /dev/null +++ b/utils/ranges.hh @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2020 ScyllaDB + */ + +/* + * This file is part of Scylla. + * + * Scylla is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Scylla is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Scylla. If not, see . + */ + +#pragma once + +#include + +namespace ranges { + +template +Container to(const Range& range) { + return Container(range.begin(), range.end()); +} + +}