forked from qt-creator/qt-creator
Utils: Add iterator constructors to small string
Change-Id: Ib8fcacd5dc520842cf5cee73ea21c021221158ca Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -127,6 +127,16 @@ public:
|
|||||||
: SmallString(SmallString::fromQString(qString))
|
: SmallString(SmallString::fromQString(qString))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
template<typename BeginIterator,
|
||||||
|
typename EndIterator,
|
||||||
|
typename = typename std::enable_if<std::is_same<BeginIterator, EndIterator>::value>::type
|
||||||
|
>
|
||||||
|
SmallString(BeginIterator begin, EndIterator end)
|
||||||
|
: SmallString(&(*begin), size_type(end - begin))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
~SmallString() noexcept
|
~SmallString() noexcept
|
||||||
{
|
{
|
||||||
if (Q_UNLIKELY(hasAllocatedMemory()))
|
if (Q_UNLIKELY(hasAllocatedMemory()))
|
||||||
|
|||||||
@@ -80,6 +80,33 @@ TEST(SmallString, ShortSmallStringIsShortSmallString)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(SmallString, CreateFromCStringIterators)
|
||||||
|
{
|
||||||
|
char sourceText[] = "this is very very very very very much text";
|
||||||
|
|
||||||
|
SmallString text(sourceText, &sourceText[sizeof(sourceText) - 1]);
|
||||||
|
|
||||||
|
ASSERT_THAT(text, SmallString("this is very very very very very much text"));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(SmallString, CreateFromQByteArrayIterators)
|
||||||
|
{
|
||||||
|
QByteArray sourceText = "this is very very very very very much text";
|
||||||
|
|
||||||
|
SmallString text(sourceText.begin(), sourceText.end());
|
||||||
|
|
||||||
|
ASSERT_THAT(text, SmallString("this is very very very very very much text"));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(SmallString, CreateFromSmallStringIterators)
|
||||||
|
{
|
||||||
|
SmallString sourceText = "this is very very very very very much text";
|
||||||
|
|
||||||
|
SmallString text(sourceText.begin(), sourceText.end());
|
||||||
|
|
||||||
|
ASSERT_THAT(text, SmallString("this is very very very very very much text"));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(SmallString, ShortSmallStringIsReference)
|
TEST(SmallString, ShortSmallStringIsReference)
|
||||||
{
|
{
|
||||||
SmallString longText("very very very very very long text");
|
SmallString longText("very very very very very long text");
|
||||||
|
|||||||
Reference in New Issue
Block a user