Add move semantics to 'Font', 'Text,' and 'Image'

This commit is contained in:
Vittorio Romeo 2022-02-16 15:06:05 +00:00
parent b069f88127
commit 218154cf00
8 changed files with 120 additions and 0 deletions

View File

@ -84,6 +84,18 @@ public:
////////////////////////////////////////////////////////////
Font(const Font& copy);
////////////////////////////////////////////////////////////
/// \brief Move constructor
///
////////////////////////////////////////////////////////////
Font(Font&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Move assignment
///
////////////////////////////////////////////////////////////
Font& operator=(Font&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Destructor
///

View File

@ -61,6 +61,30 @@ public:
////////////////////////////////////////////////////////////
~Image();
////////////////////////////////////////////////////////////
/// \brief Copy constructor
///
////////////////////////////////////////////////////////////
Image(const Image&);
////////////////////////////////////////////////////////////
/// \brief Copy assignment
///
////////////////////////////////////////////////////////////
Image& operator=(const Image&);
////////////////////////////////////////////////////////////
/// \brief Move constructor
///
////////////////////////////////////////////////////////////
Image(Image&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Move assignment
///
////////////////////////////////////////////////////////////
Image& operator=(Image&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Create the image and fill it with a unique color
///

View File

@ -88,6 +88,30 @@ public:
////////////////////////////////////////////////////////////
Text(const String& string, const Font& font, unsigned int characterSize = 30);
////////////////////////////////////////////////////////////
/// \brief Copy constructor
///
////////////////////////////////////////////////////////////
Text(const Text&);
////////////////////////////////////////////////////////////
/// \brief Copy assignment
///
////////////////////////////////////////////////////////////
Text& operator=(const Text&);
////////////////////////////////////////////////////////////
/// \brief Move constructor
///
////////////////////////////////////////////////////////////
Text(Text&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Move assignment
///
////////////////////////////////////////////////////////////
Text& operator=(Text&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Set the text's string
///

View File

@ -157,6 +157,18 @@ public:
////////////////////////////////////////////////////////////
String(const String& copy);
////////////////////////////////////////////////////////////
/// \brief Move constructor
///
////////////////////////////////////////////////////////////
String(String&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Move assignment
///
////////////////////////////////////////////////////////////
String& operator=(String&&) noexcept;
////////////////////////////////////////////////////////////
/// \brief Create a new sf::String from a UTF-8 encoded string
///

View File

@ -135,6 +135,14 @@ Font::~Font()
}
////////////////////////////////////////////////////////////
Font::Font(Font&&) noexcept = default;
////////////////////////////////////////////////////////////
Font& Font::operator=(Font&&) noexcept = default;
////////////////////////////////////////////////////////////
bool Font::loadFromFile(const std::string& filename)
{

View File

@ -53,6 +53,22 @@ Image::~Image()
}
////////////////////////////////////////////////////////////
Image::Image(const Image&) = default;
////////////////////////////////////////////////////////////
Image& Image::operator=(const Image&) = default;
////////////////////////////////////////////////////////////
Image::Image(Image&&) noexcept = default;
////////////////////////////////////////////////////////////
Image& Image::operator=(Image&&) noexcept = default;
////////////////////////////////////////////////////////////
void Image::create(unsigned int width, unsigned int height, const Color& color)
{

View File

@ -118,6 +118,22 @@ m_fontTextureId (0)
}
////////////////////////////////////////////////////////////
Text::Text(const Text&) = default;
////////////////////////////////////////////////////////////
Text& Text::operator=(const Text&) = default;
////////////////////////////////////////////////////////////
Text::Text(Text&&) noexcept = default;
////////////////////////////////////////////////////////////
Text& Text::operator=(Text&&) noexcept = default;
////////////////////////////////////////////////////////////
void Text::setString(const String& string)
{

View File

@ -132,6 +132,14 @@ m_string(copy.m_string)
}
////////////////////////////////////////////////////////////
String::String(String&&) noexcept = default;
////////////////////////////////////////////////////////////
String& String::operator=(String&&) noexcept = default;
////////////////////////////////////////////////////////////
String::operator std::string() const
{