-
Notifications
You must be signed in to change notification settings - Fork 3k
Open
Description
Hello. I think it is OK as a result of StrBlobPtr::operator+=(size_t n)
to get a trailing pointer. So maybe it is better to use the code below.
inline StrBlobPtr& StrBlobPtr::operator+=(size_t n)
{
curr += n;
check(curr - 1, "increment past end of StrBlobPtr"); // changed
return *this;
}
Attached check function code.
inline shared_ptr<vector<string>> StrBlobPtr::check(size_t i, const string &msg) const
{
auto ret = wptr.lock();
if (!ret) throw std::runtime_error("unbound StrBlobPtr");
if (i >= ret->size()) throw std::out_of_range(msg);
return ret;
}
Metadata
Metadata
Assignees
Labels
No labels