From 455ae0c561b6254e05c5fe619b08968187d28a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Sun, 31 Oct 2021 13:01:41 +0100 Subject: [PATCH] Typedef Column::iterator as Column::const_iterator not vice versa --- src/catch2/internal/catch_textflow.cpp | 16 ++++++++-------- src/catch2/internal/catch_textflow.hpp | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/catch2/internal/catch_textflow.cpp b/src/catch2/internal/catch_textflow.cpp index 01fd2df5..1e39f39a 100644 --- a/src/catch2/internal/catch_textflow.cpp +++ b/src/catch2/internal/catch_textflow.cpp @@ -39,7 +39,7 @@ namespace { namespace Catch { namespace TextFlow { - void Column::iterator::calcLength() { + void Column::const_iterator::calcLength() { m_suffix = false; auto width = m_column.m_width - indent(); m_end = m_pos; @@ -73,14 +73,14 @@ namespace Catch { } } - size_t Column::iterator::indent() const { + size_t Column::const_iterator::indent() const { auto initial = m_pos == 0 ? m_column.m_initialIndent : std::string::npos; return initial == std::string::npos ? m_column.m_indent : initial; } std::string - Column::iterator::addIndentAndSuffix( size_t position, + Column::const_iterator::addIndentAndSuffix( size_t position, size_t length ) const { std::string ret; const auto desired_indent = indent(); @@ -94,7 +94,7 @@ namespace Catch { return ret; } - Column::iterator::iterator( Column const& column ): m_column( column ) { + Column::const_iterator::const_iterator( Column const& column ): m_column( column ) { assert( m_column.m_width > m_column.m_indent ); assert( m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent ); @@ -104,12 +104,12 @@ namespace Catch { } } - std::string Column::iterator::operator*() const { + std::string Column::const_iterator::operator*() const { assert( m_pos <= m_end ); return addIndentAndSuffix( m_pos, m_len ); } - Column::iterator& Column::iterator::operator++() { + Column::const_iterator& Column::const_iterator::operator++() { m_pos += m_len; std::string const& current_line = m_column.m_string; if ( m_pos < current_line.size() && current_line[m_pos] == '\n' ) { @@ -127,8 +127,8 @@ namespace Catch { return *this; } - Column::iterator Column::iterator::operator++( int ) { - iterator prev( *this ); + Column::const_iterator Column::const_iterator::operator++( int ) { + const_iterator prev( *this ); operator++(); return prev; } diff --git a/src/catch2/internal/catch_textflow.hpp b/src/catch2/internal/catch_textflow.hpp index fdcf06bc..93c6a000 100644 --- a/src/catch2/internal/catch_textflow.hpp +++ b/src/catch2/internal/catch_textflow.hpp @@ -25,7 +25,7 @@ namespace Catch { size_t m_initialIndent = std::string::npos; public: - class iterator { + class const_iterator { friend Column; struct EndTag {}; @@ -36,7 +36,7 @@ namespace Catch { size_t m_end = 0; bool m_suffix = false; - iterator( Column const& column, EndTag ): + const_iterator( Column const& column, EndTag ): m_column( column ), m_pos( m_column.m_string.size() ) {} void calcLength(); @@ -56,21 +56,21 @@ namespace Catch { using reference = value_type&; using iterator_category = std::forward_iterator_tag; - explicit iterator( Column const& column ); + explicit const_iterator( Column const& column ); std::string operator*() const; - iterator& operator++(); - iterator operator++( int ); + const_iterator& operator++(); + const_iterator operator++( int ); - bool operator==( iterator const& other ) const { + bool operator==( const_iterator const& other ) const { return m_pos == other.m_pos && &m_column == &other.m_column; } - bool operator!=( iterator const& other ) const { + bool operator!=( const_iterator const& other ) const { return !operator==( other ); } }; - using const_iterator = iterator; + using iterator = const_iterator; explicit Column( std::string const& text ): m_string( text ) {} @@ -110,7 +110,7 @@ namespace Catch { struct EndTag {}; std::vector const& m_columns; - std::vector m_iterators; + std::vector m_iterators; size_t m_activeIterators; iterator( Columns const& columns, EndTag );