Commit Graph

244 Commits

Author SHA1 Message Date
Deukhoofd 5fda89bc72
Add support for setting and taking ownership on a pointer in UniquePtrList.
continuous-integration/drone/push Build is passing Details
2020-07-25 14:28:00 +02:00
Deukhoofd 4f5ae70634
Cleanup for the cmake file.
continuous-integration/drone/push Build is failing Details
2020-07-17 12:15:32 +02:00
Deukhoofd eb3e174877
Reset to before c++20 features that required clang.
continuous-integration/drone/push Build is passing Details
2020-07-12 15:06:20 +02:00
Deukhoofd 84052a2d94
Make StringViewLiteral use ConstEval
continuous-integration/drone/push Build is failing Details
2020-07-10 11:07:34 +02:00
Deukhoofd 950464ae79
Implements piping StringView into streams.
continuous-integration/drone/push Build is passing Details
2020-07-08 13:28:43 +02:00
Deukhoofd 97b15650f1
Intialize StringView fields to default values/
continuous-integration/drone/push Build is passing Details
2020-07-04 15:33:59 +02:00
Deukhoofd 25772e7d5a
Remove constexpr from non-constexpr function.
continuous-integration/drone/push Build is passing Details
2020-07-04 15:04:31 +02:00
Deukhoofd d3aacee0ef
Replace StringView with shared_ptr.
continuous-integration/drone/push Build is failing Details
2020-07-04 14:59:56 +02:00
Deukhoofd 5994299baa
Further tweaks to StringViews.
continuous-integration/drone/push Build is passing Details
2020-06-27 15:15:13 +02:00
Deukhoofd 9f5b8e9c83
Removed std::string_view ctor on StringView.
continuous-integration/drone/push Build is passing Details
2020-06-27 14:24:43 +02:00
Deukhoofd 083c00f85e
Changes for how Literal changes to normal StringView.
continuous-integration/drone/push Build is passing Details
2020-06-27 14:16:15 +02:00
Deukhoofd 773e765c83
Slight rework of StringView.
continuous-integration/drone/push Build is passing Details
2020-06-27 14:02:35 +02:00
Deukhoofd 030f82d34f
Reset pointer on charholder to prevent multiple deletions.
continuous-integration/drone/push Build is passing Details
2020-06-27 13:59:01 +02:00
Deukhoofd 49b5e2cfe9
Fixes Windows build.
continuous-integration/drone/push Build is passing Details
2020-06-27 13:35:29 +02:00
Deukhoofd f64224131b
Tweaks for StringView to make the backing value the owner of the string.
continuous-integration/drone/push Build is failing Details
2020-06-27 13:27:17 +02:00
Deukhoofd 544c541bc3
Remove dereference operator as it just causes issues.
continuous-integration/drone/push Build is passing Details
2020-06-26 17:49:42 +02:00
Deukhoofd 7da8a46c45
Hopefully fixes issues with incomplete types in BorrowedPtrs.
continuous-integration/drone/push Build is passing Details
2020-06-26 17:42:43 +02:00
Deukhoofd d3c9998afa
Fixes for dereference operator.
continuous-integration/drone/push Build is passing Details
2020-06-26 17:31:52 +02:00
Deukhoofd c08224ed26
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-06-26 17:18:50 +02:00
Deukhoofd 7fe8c80141
Fixed issue where the dereferencing function broke compilation on some compilers.
continuous-integration/drone/push Build is passing Details
2020-06-26 17:17:06 +02:00
Deukhoofd 72aad2a5e3
Fixed dereference operators being noexcept.
continuous-integration/drone/push Build is passing Details
2020-06-26 16:31:33 +02:00
Deukhoofd 4ffe9f10a3
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-06-26 16:27:17 +02:00
Deukhoofd e52b824a51
Mark StringView and StringViewLiteral as final.
continuous-integration/drone/push Build is passing Details
2020-06-26 16:25:07 +02:00
Deukhoofd 57f2d15723
Revert "Add virtual destructor to BasicStringView."
continuous-integration/drone/push Build is passing Details
This reverts commit 94fec63c
2020-06-26 16:20:46 +02:00
Deukhoofd 94fec63c1b
Add virtual destructor to BasicStringView.
continuous-integration/drone/push Build is failing Details
2020-06-26 16:17:19 +02:00
Deukhoofd 088f66c385
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-06-26 15:58:42 +02:00
Deukhoofd abca51d331
Large rework of the project, specifically the String classes.
continuous-integration/drone/push Build is passing Details
2020-06-26 15:56:00 +02:00
Deukhoofd 8eba3b28ff
Add dereference operator for BorrowedPtr.
continuous-integration/drone/push Build is passing Details
2020-06-26 13:13:46 +02:00
Deukhoofd d547046752
Assert BorrowedPtr is not null when trying to dereference it.
continuous-integration/drone/push Build is passing Details
2020-06-26 13:12:58 +02:00
Deukhoofd f59ec6c957
Follow code style with noexcept, add Const() function to BorrowedPtr to return a const pointer of itself.
continuous-integration/drone/push Build is passing Details
2020-06-20 17:45:41 +02:00
Deukhoofd 893aa969d5
Make BorrowedPtr hashable.
continuous-integration/drone/push Build is passing Details
2020-06-02 16:03:47 +02:00
Deukhoofd 4323e59ed4
Further fixes for Remove function on UniquePtrList
continuous-integration/drone/push Build is passing Details
2020-06-02 14:40:59 +02:00
Deukhoofd 44fc403fb6
Fixes for Remove function on UniquePtrList
continuous-integration/drone/push Build is passing Details
2020-06-02 14:28:09 +02:00
Deukhoofd 5196bed8aa
Implement Remove function for UniquePtrList.
continuous-integration/drone/push Build is passing Details
2020-06-02 13:57:40 +02:00
Deukhoofd ad2d3be7e4
Add iterator for const version of UniquePtrList.
continuous-integration/drone/push Build is passing Details
2020-05-31 18:50:22 +02:00
Deukhoofd a3a0859b94
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-05-31 17:16:20 +02:00
Deukhoofd 8ecf765ead
Make retrieve operation a const.
continuous-integration/drone/push Build is passing Details
2020-05-31 17:06:04 +02:00
Deukhoofd 262156fbd2
Allow initialization of UniquePtrList from vector of pointers.
continuous-integration/drone/push Build is passing Details
2020-05-31 16:58:45 +02:00
Deukhoofd bfe1fcc805
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-05-31 16:40:33 +02:00
Deukhoofd b7f1812153
Helper collection class that functions as list of unique pointers.
continuous-integration/drone/push Build is passing Details
2020-05-31 16:37:49 +02:00
Deukhoofd 0b740ee24d
Fixed cast functions on BorrowedPtr being invalid.
continuous-integration/drone/push Build is passing Details
2020-05-26 19:40:08 +02:00
Deukhoofd 90bda57d79
Renamed borrowed ptr to be in line with other types.
continuous-integration/drone/push Build is passing Details
2020-05-26 17:39:27 +02:00
Deukhoofd c8ca951dd8
Reduce namespace length further 2020-05-26 17:36:39 +02:00
Deukhoofd 3dc96de34b
Change namespace name so it's a lot less verbose.
continuous-integration/drone/push Build is passing Details
2020-05-26 17:21:08 +02:00
Deukhoofd 2ae108517d
Support for easy type casting from borrowed_ptr.
continuous-integration/drone/push Build is passing Details
2020-05-26 17:18:12 +02:00
Deukhoofd f1ebfd78f6
Mark several more borrowed_ptr functions as const.
continuous-integration/drone/push Build is passing Details
2020-05-26 14:01:52 +02:00
Deukhoofd a84c7ae45c
Implements assignment, some tweaks for borrowed_ptr.
continuous-integration/drone/push Build is passing Details
2020-05-26 13:44:06 +02:00
Deukhoofd 817b4c55d8
Fixes for style in Random class.
continuous-integration/drone/push Build is passing Details
2020-05-26 13:33:43 +02:00
Deukhoofd 373988c8b0
Removed overloaded equality members.
continuous-integration/drone/push Build is passing Details
2020-05-26 13:31:56 +02:00
Deukhoofd 779ddd49e3
Replace old memory management tests with simple borrowed_ptr.cpp.
continuous-integration/drone/push Build is passing Details
2020-05-26 13:22:18 +02:00
Deukhoofd 28f427fa36
Switches Random handling to PCG family, specifically for better cross platform predictability.
continuous-integration/drone/push Build is passing Details
2020-05-22 12:37:25 +02:00
Deukhoofd f99243481e
Better support for linking C libraries statically.
continuous-integration/drone/push Build is failing Details
2020-05-03 12:27:22 +02:00
Deukhoofd fe2bec18f5
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-05-02 15:55:55 +02:00
Deukhoofd 84b08f66e5
Fixes for ConstString
continuous-integration/drone/push Build is passing Details
2020-05-02 15:30:25 +02:00
Deukhoofd 2e227a2688
Style fixes.
continuous-integration/drone/push Build is passing Details
2020-04-28 16:55:00 +02:00
Deukhoofd 50f430b7be
Use map::at() function for Dictionary::Get, as it already throws an exception if it doesn't exist.
continuous-integration/drone/push Build is passing Details
2020-04-25 15:53:17 +02:00
Deukhoofd fea040252d
Fixed type issue in List.
continuous-integration/drone/push Build is passing Details
2020-04-24 19:13:55 +02:00
Deukhoofd 846a9380a7
Make List constructor with capacity reserve the space, instead of creating the vector with a set size.
continuous-integration/drone/push Build is passing Details
2020-04-24 18:48:23 +02:00
Deukhoofd 409b52bbf7
Support for reserving space in List.
continuous-integration/drone/push Build is passing Details
2020-04-24 18:47:17 +02:00
Deukhoofd fbf2e42b8f
Performance improvements for collections.
continuous-integration/drone/push Build is passing Details
2020-04-24 17:47:49 +02:00
Deukhoofd 24aff14745
Fixed const issue.
continuous-integration/drone/push Build is passing Details
2020-04-22 22:54:57 +02:00
Deukhoofd 535b68bb8c
Return GetRandomEngine not by const, so we can actually use it
continuous-integration/drone/push Build is passing Details
2020-04-22 22:50:36 +02:00
Deukhoofd 1b623c2b76
Support for getting the random engine from Random class.
continuous-integration/drone/push Build is passing Details
2020-04-22 22:44:26 +02:00
Deukhoofd 0777561a21
Removed unsensible explicit in list constructor
continuous-integration/drone/push Build is passing Details
2020-04-22 13:26:39 +02:00
Deukhoofd e34f60a8ac
Return previous value from Set function.
continuous-integration/drone/push Build is passing Details
2020-04-22 13:22:20 +02:00
Deukhoofd 8306c14163
Add Set function to List. 2020-04-22 13:21:06 +02:00
Deukhoofd 195043d4c5
Implements easier assertions for iterators
continuous-integration/drone/push Build is passing Details
2020-04-22 12:44:50 +02:00
Deukhoofd 43e612122c
Further fixes for NO_ASSERT builds.
continuous-integration/drone/push Build is passing Details
2020-04-22 12:17:47 +02:00
Deukhoofd 479a240c6f
Don't throw compilation error when NO_ASSERT is used.
continuous-integration/drone/push Build is passing Details
2020-04-22 12:02:00 +02:00
Deukhoofd 91b9854932
Further tweaks to ConstString.
continuous-integration/drone/push Build is passing Details
2020-04-21 17:06:49 +02:00
Deukhoofd 5e3b067452
Make Dictionary function parameters all passed by reference
continuous-integration/drone/push Build is passing Details
2020-04-21 13:59:01 +02:00
Deukhoofd 96995d071f
Handler for when a ConstString is assigned to an already equal ConstString.
continuous-integration/drone/push Build is passing Details
2020-04-21 13:56:06 +02:00
Deukhoofd 9bd30cb9c4
Rework of empty string handler on ConstString.
continuous-integration/drone/push Build is passing Details
2020-04-21 10:20:37 +02:00
Deukhoofd c033060c16
Handle ConstString empty pointer better.
continuous-integration/drone/push Build is passing Details
2020-04-20 19:49:39 +02:00
Deukhoofd 79384efb85
Tweaks and fixes for ConstString.
continuous-integration/drone/push Build is passing Details
2020-04-20 19:38:45 +02:00
Deukhoofd 7d98d5b467
Assert that max is higher than min on random.
continuous-integration/drone/push Build is passing Details
2020-04-19 18:45:59 +02:00
Deukhoofd 63da7ffda0
Fix start value not working on Enum.
continuous-integration/drone/push Build is passing Details
2020-04-18 15:12:34 +02:00
Deukhoofd bc64e35c8a
Implements Enum with specific start value.
continuous-integration/drone/push Build is passing Details
2020-04-18 14:57:23 +02:00
Deukhoofd e850f728bc
Add constexpr to GetValue on ConstString holder.
continuous-integration/drone/push Build is passing Details
2020-04-16 11:16:55 +02:00
Deukhoofd de702b5569
Cleanup of ConstString.
continuous-integration/drone/push Build is failing Details
2020-04-16 11:01:46 +02:00
Deukhoofd d6b7344dde
Limit amount of copies of ConstString by implementing reference counter.
continuous-integration/drone/push Build is passing Details
2020-04-13 13:59:43 +02:00
Deukhoofd d64964b7cb
Include cmath in Enum for log10 use.
continuous-integration/drone/push Build is passing Details
2020-04-10 20:02:41 +02:00
Deukhoofd f89fb303b5
Fixed memory issues with new Enum ToString handling.
continuous-integration/drone/push Build is passing Details
2020-04-10 19:57:12 +02:00
Deukhoofd 9244249a64
Better handling of out of bound enum values in ToString.
continuous-integration/drone/push Build is failing Details
2020-04-10 19:51:35 +02:00
Deukhoofd 60802341b0
Fixed assignment memory issue.
continuous-integration/drone/push Build is passing Details
2020-04-10 14:38:01 +02:00
Deukhoofd fe01886114
Separate ConstString into normal and literal variant.
continuous-integration/drone/push Build is failing Details
2020-04-09 18:01:38 +02:00
Deukhoofd 6b4d18f434
Resolve issue where ConstString can lose internal string representation due to not owning it.
continuous-integration/drone/push Build is failing Details
This sadly meant most constexpr constructors had to be removed, as it needs to copy the string.
2020-04-07 18:54:23 +02:00
Deukhoofd 460f9308a0
Fixed issue with Valgrind.
continuous-integration/drone/push Build is passing Details
2020-04-04 18:01:35 +02:00
Deukhoofd 6f60cd7c96
Rework of Random class. Now ensures better randomness, is more performant, and has function for retrieving seed.
continuous-integration/drone/push Build is failing Details
2020-04-04 17:48:05 +02:00
Deukhoofd 4f563e6e67
Allow functions for GetNonNull and GetOptional to work when const.
continuous-integration/drone/push Build is passing Details
2020-03-30 19:06:08 +02:00
Deukhoofd 4c1ca2e822
Allow transferring borrowedPtr into NonNull variant and vice versa.
continuous-integration/drone/push Build is passing Details
2020-03-30 18:52:08 +02:00
Deukhoofd f8b4d79e28
Allow access of raw template type when const.
continuous-integration/drone/push Build is passing Details
2020-03-30 18:29:49 +02:00
Deukhoofd 86c7aba0ea
Fixed OwnPtr not returning right version on BorrowNonNull.
continuous-integration/drone/push Build is passing Details
2020-03-30 18:20:02 +02:00
Deukhoofd 16b082f00d
Allow borrowing as nonnull or optional pointers.
continuous-integration/drone/push Build is passing Details
2020-03-30 17:58:11 +02:00
Deukhoofd 9e2805f684
Allow implicit converting of raw pointers to OwnPtrs.
continuous-integration/drone/push Build is passing Details
2020-03-30 17:45:31 +02:00
Deukhoofd 96b2bd61ab
Default the BorrowedPtr and OwnPtr to nullptr.
continuous-integration/drone/push Build is passing Details
2020-03-30 17:41:08 +02:00
Deukhoofd 6c5fe1bf93
Allow blank constructors for pointer types. 2020-03-30 17:28:21 +02:00
Deukhoofd d46b0d798a
Added const variants of Borrow.
continuous-integration/drone/push Build is passing Details
2020-03-29 19:14:30 +02:00
Deukhoofd ae73e60f94
Allow assignment operator for OwnPtr.
continuous-integration/drone/push Build is passing Details
2020-03-29 19:01:28 +02:00
Deukhoofd 72b545f5e3
Add functionality for Collections to get underlying items.
continuous-integration/drone/push Build is passing Details
2020-03-29 18:49:10 +02:00
Deukhoofd 74ac2dbbc3
More functionality for memory classes.
continuous-integration/drone/push Build is passing Details
2020-03-29 18:09:55 +02:00
Deukhoofd 872c275bc7
Support for pointer holder outline.
continuous-integration/drone/push Build is passing Details
2020-03-28 21:08:55 +01:00
Deukhoofd bfedd15560
Add new line at end of macro file for Windows build.
continuous-integration/drone/push Build is passing Details
2020-03-26 21:59:20 +01:00
Deukhoofd eb84eb0588
Macro support for unpacking weak pointers.
continuous-integration/drone/push Build is failing Details
2020-03-26 21:55:00 +01:00
Deukhoofd 7524c2d61c
Added IndexOf support for List.
continuous-integration/drone/push Build is passing Details
2020-03-24 22:56:40 +01:00
Deukhoofd 0b6220b2bf
Add Remove function to List, to remove items at a given index.
continuous-integration/drone/push Build is passing Details
2020-03-22 19:08:38 +01:00
Deukhoofd 97bd13a1cb
Fixed not being able to assign to bool list.
continuous-integration/drone/push Build is passing Details
2020-03-22 18:44:50 +01:00
Deukhoofd cc86041b06
Switch At functions around.
continuous-integration/drone/push Build is passing Details
2020-03-22 18:34:05 +01:00
Deukhoofd 196bf5e1da
Assert index is not negative for List.
continuous-integration/drone/push Build is passing Details
2020-03-22 18:21:29 +01:00
Deukhoofd 79ab962e2f
Fixed not being to iterate over const collections.
continuous-integration/drone/push Build is passing Details
2020-03-22 18:15:13 +01:00
Deukhoofd c1167e704a
Implements Resize function for List.
continuous-integration/drone/push Build is passing Details
2020-03-22 18:01:39 +01:00
Deukhoofd 0f07837558
Implements List constructor for raw C arrays.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:50:17 +01:00
Deukhoofd b47757d343
Make List Count function const.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:35:57 +01:00
Deukhoofd ba586bf262
Support for getting C array data from List.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:32:31 +01:00
Deukhoofd 7c98d3d4eb
Implements Remove function for Dictionary.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:18:53 +01:00
Deukhoofd 1f882b9596
Implements clear functions on Dictionary and List.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:14:51 +01:00
Deukhoofd 5e9ffa0d69
Implements List collection type for safe access to vector.
continuous-integration/drone/push Build is passing Details
2020-03-22 17:09:25 +01:00
Deukhoofd e6d58723fc
Don't require capacity parameter for Dictionary.
continuous-integration/drone/push Build is passing Details
2020-03-22 16:55:07 +01:00
Deukhoofd 3bbb12f485
Add initializer list support for Dictionary.
continuous-integration/drone/push Build is passing Details
2020-03-22 16:53:42 +01:00
Deukhoofd e4c203027b
Make NO_ASSERT disable a lot of Dictionary safety in exchange for a bit more speed.
continuous-integration/drone/push Build is passing Details
2020-03-22 16:43:31 +01:00
Deukhoofd 5de26d0866
Implements Dictionary class, a wrapper for the unordered_map, with more safety.
continuous-integration/drone/push Build is passing Details
2020-03-22 16:38:48 +01:00
Deukhoofd e07e07253d
Tweaks and fixes for Assert 2020-03-22 12:20:39 +01:00
Deukhoofd 638a414961
More fixes for Assert.
continuous-integration/drone/push Build is passing Details
2020-03-22 12:05:16 +01:00
Deukhoofd aa1b90554f
More fixes for Assert.
continuous-integration/drone/push Build is passing Details
2020-03-22 12:02:02 +01:00
Deukhoofd 2d4cc2cd80
Further fixes for Assert
continuous-integration/drone/push Build is passing Details
2020-03-22 11:52:08 +01:00
Deukhoofd 07f215a4fa
Fixes for AssertNotNull
continuous-integration/drone/push Build is passing Details
2020-03-22 11:41:55 +01:00
Deukhoofd 657767536f
Implements AssertNotNull macro
continuous-integration/drone/push Build is passing Details
2020-03-22 11:32:54 +01:00
Deukhoofd 0fe488b1c2
Implements Assert macro.
continuous-integration/drone/push Build is passing Details
2020-03-22 11:14:47 +01:00
Deukhoofd 5710329f39
Support to get highest and lowest values from enums.
continuous-integration/drone/push Build is passing Details
2020-03-12 19:28:26 +01:00
Deukhoofd 623dd9cb20
Prefix macro utils macros that are not intended for external use.
continuous-integration/drone/push Build is failing Details
2020-03-11 11:49:56 +01:00
Deukhoofd e0f9629946
Added helper functions for first and last value in an enum, made MacroUtils be generated through python file, now allowing up to 256 Enum values.
continuous-integration/drone/push Build is failing Details
2020-03-11 11:38:36 +01:00
Deukhoofd 209e802699
Adds function to ConstString to just get the hash of a value.
continuous-integration/drone/push Build is passing Details
2020-02-29 14:11:55 +01:00
Deukhoofd 4c36946496
Implements .Empty method on constString types.
continuous-integration/drone/push Build is passing Details
2020-02-27 18:05:24 +01:00
Deukhoofd e9d36a6237
Better handling of Windows not handling constexpr on std::string.
continuous-integration/drone/push Build is passing Details
2020-02-27 17:30:31 +01:00
Deukhoofd aacca6e5e2
Better handling of ConstString types.
continuous-integration/drone/push Build is failing Details
2020-02-27 17:22:06 +01:00
Deukhoofd 09b6fd92ce
Split off Case Insensitive const string.
continuous-integration/drone/push Build is failing Details
2020-02-27 16:53:30 +01:00
Deukhoofd 6e4c77d77a
Implements constructor for use with std string on ConstString. 2020-02-27 16:50:33 +01:00
Deukhoofd e6599e2b5b
Implements ConstString comparison with other string types.
continuous-integration/drone/push Build is failing Details
2020-02-27 16:35:02 +01:00
Deukhoofd efec26fe68
Support for case insensitive ConstString.
continuous-integration/drone/push Build is passing Details
2020-02-27 15:18:54 +01:00
Deukhoofd ec728e7d68
Fixed 'unsigned long' breaking Windows build.
continuous-integration/drone/push Build is passing Details
2020-02-27 13:48:50 +01:00
Deukhoofd f8ecebef8c
Support for using ConstString in unordered_maps and switch case statements.
continuous-integration/drone/push Build is failing Details
2020-02-27 13:42:26 +01:00
Deukhoofd 5d620e8ee7
Tweaks for Random class.
continuous-integration/drone/push Build is passing Details
2020-02-26 13:27:56 +01:00
Deukhoofd d08d62f3e7
Mark functions in ConstString as inline.
continuous-integration/drone/push Build is failing Details
2020-02-26 13:01:21 +01:00
Deukhoofd 01f1d65739
Initial commit. 2020-02-26 12:57:18 +01:00