util/AllocatedString: add const_pointer constructor

This commit is contained in:
Max Kellermann 2021-01-14 13:34:43 +01:00 committed by Max Kellermann
parent 6e1c8edf09
commit bca5d79f88
1 changed files with 10 additions and 1 deletions

View File

@ -65,7 +65,10 @@ public:
BasicAllocatedString(std::nullptr_t n) noexcept
:value(n) {}
explicit BasicAllocatedString(string_view src) noexcept
explicit BasicAllocatedString(string_view src)
:value(Duplicate(src)) {}
explicit BasicAllocatedString(const_pointer src)
:value(Duplicate(src)) {}
BasicAllocatedString(BasicAllocatedString &&src) noexcept
@ -144,6 +147,12 @@ private:
*std::copy_n(src.data(), src.size(), p) = SENTINEL;
return p;
}
static pointer Duplicate(const_pointer src) {
return src != nullptr
? Duplicate(std::string_view(src))
: nullptr;
}
};
class AllocatedString : public BasicAllocatedString<char> {