SFML/test/Graphics/Text.test.cpp
Chris Thrasher 3f4bb1ae12 Prevent constructing sf::Text with a temporary sf::Font
By deleting this constructor overload, it fails to compile if
you pass a temporary font to this parameter slot. That includes
code like

  sf::Text text("", sf::Font());

but more importantly it prohibits code like this

  sf::Font getFont()
  {
    sf::Font font;
    // load a font...
    return font;
  }

  sf::Text text("", getFont());

The same idea can be applied to setFont() to prevent setting fonts
from a temporary.

Credit to Jonny for the idea

Co-authored-by: JonnyPtn <jonathan.r.paton@googlemail.com>
2023-01-06 10:21:00 -07:00

10 lines
378 B
C++

#include <SFML/Graphics/Text.hpp>
#include <type_traits>
static_assert(!std::is_constructible_v<sf::Text, sf::String, sf::Font&&, unsigned int>);
static_assert(std::is_copy_constructible_v<sf::Text>);
static_assert(std::is_copy_assignable_v<sf::Text>);
static_assert(std::is_nothrow_move_constructible_v<sf::Text>);
static_assert(std::is_nothrow_move_assignable_v<sf::Text>);