From 7bf24a11a53d345b58a7437a1b9768f2da78eeb2 Mon Sep 17 00:00:00 2001 From: Brett Laptop Date: Fri, 8 Nov 2024 19:22:06 -0500 Subject: [PATCH] initiailizer list now works for dynamic spans --- CMakeLists.txt | 2 +- include/blt/std/ranges.h | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b520c69..b2cd8ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.20) include(cmake/color.cmake) -set(BLT_VERSION 2.1.6) +set(BLT_VERSION 2.1.7) set(BLT_TARGET BLT) diff --git a/include/blt/std/ranges.h b/include/blt/std/ranges.h index 12d4688..e6f5ca5 100644 --- a/include/blt/std/ranges.h +++ b/include/blt/std/ranges.h @@ -227,14 +227,14 @@ namespace blt constexpr span(const R& range): size_(std::size(range)), data_(range.data()) // NOLINT {} - template, bool> = true> explicit constexpr span(std::initializer_list il) noexcept: size_(il.size()), data_(&il.begin()) // NOLINT {} - template, bool> = true> - explicit span(std::initializer_list il) noexcept: size_(il.size()), data_(&il.begin()) // NOLINT +// template, bool> = true> + span(std::initializer_list il) noexcept: size_(il.size()), data_(std::data(il)) // NOLINT {} template + template span(T (&)[N]) -> span; - template + template span(const T (&)[N]) -> span; - template + template span(std::array&) -> span; - template + template span(const std::array&) -> span; - template + template span(Cont&) -> span; - - template + + template span(const Cont&) -> span; + + template + span(std::initializer_list) -> span; + } #endif //BLT_RANGES_H