mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Improvements to STParsedJSON:
* Cleanups and reduction of copying * Add STArray::back, operator[], push_back(&&) * Add make_stvar * Rework STParsedJSON * Fix code and unit tests that use STParsedJSON * STTx move constructor
This commit is contained in:
@@ -71,11 +71,37 @@ public:
|
||||
return emplace(n, buf, std::move(*this));
|
||||
}
|
||||
|
||||
void push_back (const STObject & object)
|
||||
STObject& operator[] (std::size_t j)
|
||||
{
|
||||
return v_[j];
|
||||
}
|
||||
|
||||
STObject const& operator[] (std::size_t j) const
|
||||
{
|
||||
return v_[j];
|
||||
}
|
||||
|
||||
STObject& back() { return v_.back(); }
|
||||
|
||||
STObject const& back() const { return v_.back(); }
|
||||
|
||||
template <class... Args>
|
||||
void
|
||||
emplace_back(Args&&... args)
|
||||
{
|
||||
v_.emplace_back(std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
void push_back (STObject const& object)
|
||||
{
|
||||
v_.push_back(object);
|
||||
}
|
||||
|
||||
void push_back (STObject&& object)
|
||||
{
|
||||
v_.push_back(std::move(object));
|
||||
}
|
||||
|
||||
iterator begin ()
|
||||
{
|
||||
return v_.begin ();
|
||||
@@ -101,11 +127,6 @@ public:
|
||||
return v_.size ();
|
||||
}
|
||||
|
||||
STObject& back ()
|
||||
{
|
||||
return v_.back ();
|
||||
}
|
||||
|
||||
bool empty () const
|
||||
{
|
||||
return v_.empty ();
|
||||
|
||||
Reference in New Issue
Block a user