From 2e5d46c399fd26bc15be212914b72cd9a7b83f70 Mon Sep 17 00:00:00 2001 From: Max Kellermann <mk@cm4all.com> Date: Tue, 5 Jul 2022 14:34:29 +0200 Subject: [PATCH] util/StringSplit: add `constexpr` --- src/util/StringSplit.hxx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/util/StringSplit.hxx b/src/util/StringSplit.hxx index 10eb86f9a..3a9c611d2 100644 --- a/src/util/StringSplit.hxx +++ b/src/util/StringSplit.hxx @@ -51,8 +51,7 @@ Partition(const std::basic_string_view<T> haystack, } template<typename T> -[[gnu::pure]] -std::pair<std::basic_string_view<T>, std::basic_string_view<T>> +constexpr std::pair<std::basic_string_view<T>, std::basic_string_view<T>> PartitionWithout(const std::basic_string_view<T> haystack, const typename std::basic_string_view<T>::size_type separator) noexcept { @@ -68,8 +67,7 @@ PartitionWithout(const std::basic_string_view<T> haystack, * string and the second value is nullptr. */ template<typename T> -[[gnu::pure]] -std::pair<std::basic_string_view<T>, std::basic_string_view<T>> +constexpr std::pair<std::basic_string_view<T>, std::basic_string_view<T>> Split(const std::basic_string_view<T> haystack, const T ch) noexcept { const auto i = haystack.find(ch); @@ -85,8 +83,7 @@ Split(const std::basic_string_view<T> haystack, const T ch) noexcept * value is the whole string and the second value is nullptr. */ template<typename T> -[[gnu::pure]] -std::pair<std::basic_string_view<T>, std::basic_string_view<T>> +constexpr std::pair<std::basic_string_view<T>, std::basic_string_view<T>> SplitLast(const std::basic_string_view<T> haystack, const T ch) noexcept { const auto i = haystack.rfind(ch);