diff options
Diffstat (limited to 'absl/strings/internal/cord_rep_ring.h')
-rw-r--r-- | absl/strings/internal/cord_rep_ring.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/absl/strings/internal/cord_rep_ring.h b/absl/strings/internal/cord_rep_ring.h index e6f6b59c..55cba8b4 100644 --- a/absl/strings/internal/cord_rep_ring.h +++ b/absl/strings/internal/cord_rep_ring.h @@ -563,6 +563,17 @@ inline CordRepRing::Position CordRepRing::FindTail(index_type head, return (offset == length) ? Position{tail_, 0} : FindTailSlow(head, offset); } +// Now that CordRepRing is defined, we can define CordRep's helper casts: +inline CordRepRing* CordRep::ring() { + assert(tag == RING); + return static_cast<CordRepRing*>(this); +} + +inline const CordRepRing* CordRep::ring() const { + assert(tag == RING); + return static_cast<const CordRepRing*>(this); +} + std::ostream& operator<<(std::ostream& s, const CordRepRing& rep); #ifdef __clang__ |