Commit Graph

11 Commits

Author SHA1 Message Date
Bananymous 2cc9534570 BAN: Add emplace for Variant
This allows variant to store values that are not copy/move
constructible.
2024-02-07 22:33:16 +02:00
Bananymous 4273f43be1 BAN: Move placement new to its own file and fix includes 2024-01-31 23:55:41 +02:00
Bananymous dfe5a2d665 All: Cleanup all files
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
Bananymous 6873244169 BAN: Move placement new to New.h
I have no idea why they were defined in Move.h
2023-12-07 23:52:57 +02:00
Bananymous 805b4096e9 BAN: Remove empty else. Builds with -Wall -Wextra 2023-12-07 23:50:35 +02:00
Bananymous 2c52e0aad8 BAN: Variant with reference now supports copy/assign 2023-04-18 20:21:23 +03:00
Bananymous 06916f56be BAN: Variant now works with references
References can be assigned with the set() method. Construction nor
assigment operators cannot be used with references to avoid ambiguity
with what assignment to reference does.

You can set the underlying reference with the set() method and access
it with the get() method.

The references are stored as pointers to the object under the hood
which means that size of a reference is sizeof pointer.
2023-04-18 19:53:34 +03:00
Bananymous c3df0bd15e BAN: Variant::set now copy/move assigns when possible 2023-04-18 19:10:22 +03:00
Bananymous b41a8e2829 BAN: Variant now has variadic template types 2023-04-18 18:29:48 +03:00
Bananymous c35e7368f2 BAN: Variant now aligns its data properly 2023-04-12 00:17:45 +03:00
Bananymous 10b6d51522 BAN: implement Variant<> for two types 2023-02-22 01:17:21 +02:00