From 86fd02622e9cdf9fedc6a3f408aba2e9ba5b7bdf Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Fri, 23 Nov 2018 12:02:03 +0100 Subject: [PATCH] fix moving CharSequence implementation classes --- alib2cli/src/lexer/StringCharSequence.h | 12 ++++++++++++ aql2/src/prompt/ReadlineCharSequence.h | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/alib2cli/src/lexer/StringCharSequence.h b/alib2cli/src/lexer/StringCharSequence.h index 0da555d0f0..aa7bb3c547 100644 --- a/alib2cli/src/lexer/StringCharSequence.h +++ b/alib2cli/src/lexer/StringCharSequence.h @@ -19,6 +19,18 @@ public: this->linePtr = m_line.c_str ( ); } + StringCharSequence ( StringCharSequence && other ) : CharSequenceBase ( std::move ( other ) ) { + size_t dist = this->linePtr - other.m_line.c_str ( ); + m_line = std::move ( other.m_line ); + this->linePtr = m_line.c_str ( ) + dist; + } + + StringCharSequence ( const StringCharSequence & ) = delete; + + StringCharSequence & operator = ( StringCharSequence && ) = delete; + + StringCharSequence & operator = ( const StringCharSequence & ) = delete; + virtual std::string getLine ( ) const override { return m_line; } diff --git a/aql2/src/prompt/ReadlineCharSequence.h b/aql2/src/prompt/ReadlineCharSequence.h index 5d77e24e22..e4b12f7e8a 100644 --- a/aql2/src/prompt/ReadlineCharSequence.h +++ b/aql2/src/prompt/ReadlineCharSequence.h @@ -56,6 +56,14 @@ public: fetch ( true ); } + ReadlineCharSequence ( ReadlineCharSequence && ) = default; + + ReadlineCharSequence ( const ReadlineCharSequence & ) = delete; + + ReadlineCharSequence & operator = ( ReadlineCharSequence && ) = delete; + + ReadlineCharSequence & operator = ( const ReadlineCharSequence & ) = delete; + virtual std::string getLine ( ) const override { std::string res; for ( const std::string & line : m_lines ) { -- GitLab