Commit Graph

76 Commits

Author SHA1 Message Date
Chris Thrasher
18eb48b13e Disallow C-style arrays 2024-10-17 21:40:41 -06:00
Lukas Dürrenberger
ecb945b341 Use explicit constructors when implicit construction isn't wanted 2024-10-03 22:43:57 -06:00
vittorioromeo
816855d13f Remove sf::Vector2<T>::Unit[XY] 2024-10-03 20:51:09 -06:00
ZXShady
de9286c11f Use explicit conversion operator instead of explicit constructor
I also added a type trait test to check whether the conversion operator is marked explicit.

this change has the advantage of being  clearer imo as it is a conversion operator for conersions not a constructor.

and also it allows users to take the address of convesion operator which I don't know if someone might find that useful.
2024-10-02 00:15:54 +02:00
Lukas Dürrenberger
265a0cb03f Rename Vector2 & Vector3 functions to better fit the naming convention 2024-09-08 12:09:32 -06:00
Chris Thrasher
27943ea774 Disallow constructing sf::String from std::nullptr_t 2024-08-30 09:55:55 -06:00
Chris Thrasher
4a463ec136 Throw custom sf::Exception type 2024-08-25 12:17:49 -06:00
binary1248
e185f6d53e Replace factory functions with throwing constructors 2024-08-08 09:19:32 -06:00
binary1248
698f265277 (Re-)Introduce default constructors and load/open member functions for resource objects that can be reused. 2024-08-08 09:19:32 -06:00
Chris Thrasher
c8c8673259 Pass sf::Vector2<T>s by value
As a rule of thumb, if the type is less than or equal to the CPU
register width times two then you ought to pass it by value. This
will lead to more efficient code generation.
2024-07-19 10:33:00 -06:00
Chris Thrasher
e1469aa8f2 Use [[nodiscard]] in more places 2024-06-27 15:12:15 -06:00
Chris Thrasher
304a7c1d69 Remove default empty state of sf::FileInputStream 2024-06-11 07:31:09 -05:00
Chris Thrasher
366b119963 Remove default empty state of sf::MemoryInputStream 2024-06-10 08:11:28 -05:00
Chris Thrasher
de8430bb29 Use std::optional rather than sentinel values 2024-06-09 20:48:55 -05:00
Chris Thrasher
5484824948 Remove unnecessary static casts 2024-06-05 11:54:36 -06:00
vittorioromeo
884206ce0c Store angles internally as radians 2024-05-14 13:07:40 -06:00
Chris Thrasher
593c4fe173 Replace C arrays with std::array 2024-05-14 12:47:19 -05:00
vittorioromeo
b552148e26 Header cleanup guided by IWYU 2024-02-09 12:52:23 +01:00
Chris Thrasher
9022d9564d Define character traits for std::uint8_t
Character traits are only standardized for character types of which
std::uint8_t is not. All major C++ implementations happen to define
this specialization but because it is not standard C++ they are
allowed to remove it as LLVM has done by deprecating this specialization
in LLVM 18. It is slated for removal in LLVM 19. To avoid compilation
errors and to get ahead of any deprecation warnings when LLVM 18 ships
we need to define our own std::uint8_t character traits.

SFML 4 will have access to C++20's std::u8string which should let us
remove this code.
2024-01-28 10:24:02 -07:00
Chris Thrasher
43dc13c3de Fix typo in sf::Vector3<T> type trait tests 2024-01-14 19:19:37 -07:00
Chris Thrasher
9cb4a68c9a Test class templates with multiple template types 2023-11-15 12:07:31 -07:00
Chris Thrasher
b856d806be Improve sf::FileInputStream test coverage 2023-10-05 16:46:31 -06:00
Chris Thrasher
1e4aed8700 Fix clang-tidy readability-container-size-empty warnings 2023-09-29 15:55:39 -06:00
Chris Thrasher
b68482754b Use std::filesystem::path for paths 2023-07-27 11:13:45 -06:00
Chris Thrasher
98df0fe4c9 Add doc strings to remaining assertions 2023-07-10 15:03:01 -06:00
MetGang
8835f42589 Make sf::Clock pausable 2023-06-02 11:32:04 -06:00
Chris Thrasher
f6dfc04938 Switch to Catch2 2023-05-13 12:38:11 -06:00
Chris Thrasher
fb1cfdc48d Add misc-const-correctness clang-tidy check 2023-05-04 16:22:03 -06:00
Chris Thrasher
1c5c8ad700 Add tests for sf::sleep 2023-04-28 15:01:11 -06:00
vittorioromeo
cbfa9cbb65 Reorder includes hierarchically 2023-04-25 17:25:33 +02:00
Jan Wojciechowski
692fe84331 Fix condition for trailing bytes count in UTF-8 decoder. Test added to check if a replacement characters is added to output. 2023-04-19 23:52:38 +02:00
vittorioromeo
c6226258db Improve test utility header compilation speed 2023-04-13 16:33:49 +02:00
Chris Thrasher
f371a99b39 Implement sf::String in terms of std::u32string 2023-04-04 15:47:34 -06:00
Chris Thrasher
ebe4b3c437 Add tests for sf::String 2023-04-03 21:23:43 -06:00
Chris Thrasher
2d2f684786 Fix clang-tidy-16 errors 2023-03-28 19:54:06 -06:00
Norm Evangelista
6ef8e487cc Added readability-qualified-auto, -redundant-access-specifiers
Fixed clang-format escapes

Fixed OSX clang-tidy issues

Collapsed extraneous lines

Fixed clang-format escape
2023-01-19 15:53:40 -07:00
Chris Thrasher
718195bf25 Mark move operators as noexcept 2023-01-04 09:49:20 -07:00
Jonny Paton
e4bffe5b84 Rename test files to be unique 2022-10-23 16:39:12 +02:00
Chris Thrasher
9feef3708d Test existence of copy and move semantics 2022-10-10 11:46:55 -06:00
Chris Thrasher
939ec267df Improve const correctness 2022-10-01 23:19:52 +02:00
Chris Thrasher
25fa30afc6 Make test case names more readable
Test output now shows the module name left-aligned so you can easily
browse to see what modules have what tests and know what module a
failing test is coming from.
2022-10-01 23:19:52 +02:00
Chris Thrasher
3a3935d005 Replace sf::Uint64 with std::uint64_t 2022-09-13 11:15:03 -06:00
Chris Thrasher
05690b963d Replace sf::Int64 with std::int64_t 2022-09-13 11:15:03 -06:00
Chris Thrasher
e294090c8e Replace sf::Uint32 with std::uint32_t 2022-09-12 15:36:55 -06:00
Chris Thrasher
056f66a2b8 Replace sf::Int32 with std::int32_t 2022-09-12 15:36:55 -06:00
Chris Thrasher
ff9c9131b3 Replace sf::Uint16 with std::uint16_t 2022-09-12 21:36:13 +03:00
Chris Thrasher
e21ae3204e Replace sf::Int16 with std::int16_t 2022-09-12 21:36:13 +03:00
Chris Thrasher
e2528de20a Replace sf::Uint8 with std::uint8_t 2022-09-09 10:28:53 +02:00
Chris Thrasher
af34794123 Replace sf::Int8 with std::int8_t 2022-09-09 10:28:53 +02:00
Chris Thrasher
8561101b11 Add conversions between sf::Time and std::chrono::durations 2022-09-05 23:35:25 +02:00