forked from qt-creator/qt-creator
Utils: Add iterator constructors to small string
Change-Id: I34e15177268f0733200d25c90fd935485c3176ae Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -716,7 +716,7 @@ StringType convertToTextForColumn(sqlite3_stmt *sqlStatment, int column)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return StringType{"", 0};
|
return {};
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@@ -64,8 +64,8 @@ template<uint Size>
|
|||||||
class BasicSmallString
|
class BasicSmallString
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, char>;
|
using iterator = SmallStringView::iterator;
|
||||||
using const_iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, const char>;
|
using const_iterator = SmallStringView::const_iterator;
|
||||||
using reverse_iterator = std::reverse_iterator<iterator>;
|
using reverse_iterator = std::reverse_iterator<iterator>;
|
||||||
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
||||||
using size_type = std::size_t;
|
using size_type = std::size_t;
|
||||||
@@ -113,8 +113,15 @@ public:
|
|||||||
|
|
||||||
BasicSmallString(const char *string, size_type size)
|
BasicSmallString(const char *string, size_type size)
|
||||||
: BasicSmallString(string, size, size)
|
: BasicSmallString(string, size, size)
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
explicit BasicSmallString(const_iterator begin, const_iterator end)
|
||||||
|
: BasicSmallString(SmallStringView{begin, end})
|
||||||
|
{}
|
||||||
|
|
||||||
|
explicit BasicSmallString(iterator begin, iterator end)
|
||||||
|
: BasicSmallString(SmallStringView{begin, end})
|
||||||
|
{}
|
||||||
|
|
||||||
template<typename Type, typename = std::enable_if_t<std::is_pointer<Type>::value>>
|
template<typename Type, typename = std::enable_if_t<std::is_pointer<Type>::value>>
|
||||||
BasicSmallString(Type characterPointer)
|
BasicSmallString(Type characterPointer)
|
||||||
|
@@ -49,6 +49,7 @@ class SmallStringView
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using const_iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, const char>;
|
using const_iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, const char>;
|
||||||
|
using iterator = Internal::SmallStringIterator<std::random_access_iterator_tag, char>;
|
||||||
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
||||||
using size_type = std::size_t;
|
using size_type = std::size_t;
|
||||||
|
|
||||||
@@ -62,14 +63,22 @@ public:
|
|||||||
constexpr SmallStringView(const char *const string, const size_type size) noexcept
|
constexpr SmallStringView(const char *const string, const size_type size) noexcept
|
||||||
: m_pointer(string)
|
: m_pointer(string)
|
||||||
, m_size(size)
|
, m_size(size)
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
|
||||||
constexpr SmallStringView(const const_iterator begin, const const_iterator end) noexcept
|
constexpr SmallStringView(const char *const begin, const char *const end) noexcept
|
||||||
|
: m_pointer(begin)
|
||||||
|
, m_size(static_cast<std::size_t>(std::distance(begin, end)))
|
||||||
|
{}
|
||||||
|
|
||||||
|
constexpr SmallStringView(const_iterator begin, const_iterator end) noexcept
|
||||||
: m_pointer(begin.data())
|
: m_pointer(begin.data())
|
||||||
, m_size(std::size_t(end - begin))
|
, m_size(std::size_t(end - begin))
|
||||||
{
|
{}
|
||||||
}
|
|
||||||
|
constexpr SmallStringView(iterator begin, iterator end) noexcept
|
||||||
|
: m_pointer(begin.data())
|
||||||
|
, m_size(std::size_t(end - begin))
|
||||||
|
{}
|
||||||
|
|
||||||
template<typename String, typename Utils::enable_if_has_char_data_pointer<String> = 0>
|
template<typename String, typename Utils::enable_if_has_char_data_pointer<String> = 0>
|
||||||
constexpr SmallStringView(const String &string) noexcept
|
constexpr SmallStringView(const String &string) noexcept
|
||||||
|
Reference in New Issue
Block a user