Utils: Rebase SmallStringView on std::string_view

There are still some methods missing but with C++20 we can maybe remove
SmallStringView.

Change-Id: I65a1eacda0a07cec824f1837e385faa01fc825e9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2021-03-22 17:59:07 +01:00
parent 8a82c8f4ee
commit 611615f10b
3 changed files with 23 additions and 94 deletions

View File

@@ -64,8 +64,8 @@ template<uint Size>
class BasicSmallString
{
public:
using iterator = SmallStringView::iterator;
using const_iterator = SmallStringView::const_iterator;
using const_iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, const char>;
using iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, char>;
using reverse_iterator = std::reverse_iterator<iterator>;
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
using size_type = std::size_t;
@@ -116,11 +116,12 @@ public:
{}
explicit BasicSmallString(const_iterator begin, const_iterator end)
: BasicSmallString(SmallStringView{begin, end})
: BasicSmallString{std::addressof(*begin), static_cast<std::size_t>(std::distance(begin, end))}
{}
explicit BasicSmallString(iterator begin, iterator end)
: BasicSmallString(SmallStringView{begin, end})
: BasicSmallString{std::addressof(*begin), static_cast<std::size_t>(std::distance(begin, end))}
{}
template<typename Type, typename = std::enable_if_t<std::is_pointer<Type>::value>>