8794122c2d
BAN: Variant allow copy/move from empty
2026-02-07 18:54:31 +02:00
a68f411024
BAN: Add requires clauses for Container::emplace{,_back} functions
...
This allows syntax highlighters to report errors!
2024-10-10 21:51:44 +03:00
110a45bee6
BAN: Implement Variant::has_value() and Variant::operator bool()
2024-07-12 20:37:56 +03:00
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
4273f43be1
BAN: Move placement new to its own file and fix includes
2024-01-31 23:55:41 +02:00
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
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
805b4096e9
BAN: Remove empty else. Builds with -Wall -Wextra
2023-12-07 23:50:35 +02:00
2c52e0aad8
BAN: Variant with reference now supports copy/assign
2023-04-18 20:21:23 +03:00
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
c3df0bd15e
BAN: Variant::set now copy/move assigns when possible
2023-04-18 19:10:22 +03:00
b41a8e2829
BAN: Variant now has variadic template types
2023-04-18 18:29:48 +03:00
c35e7368f2
BAN: Variant now aligns its data properly
2023-04-12 00:17:45 +03:00
10b6d51522
BAN: implement Variant<> for two types
2023-02-22 01:17:21 +02:00