frosch
d2c9828b4c
Codechange: Move IsUtf8Part to only file using it.
2025-04-14 18:56:23 +02:00
frosch
dc21fae18e
Codechange: Add InPlaceReplacement to couple StringConsumer and Builder on the same buffer.
2025-04-14 18:07:23 +02:00
frosch
800d6e339d
Codechange: Add StringConsumer.
2025-04-13 21:59:10 +02:00
frosch
ad8e9634ec
Codechange: Generalize StringBuilder.
2025-04-08 23:10:58 +02:00
frosch
b19e43ae99
Add: Utf8View and iterator.
2025-04-03 18:43:41 +02:00
Peter Nelson
79ef4e98fe
Codechange: Use std::swap() instead of Swap() ( #13883 )
2025-03-24 23:47:34 +00:00
Rubidium
a908c7bed0
Codechange: remove uses of MemCmpT (and MemMoveT)
2025-03-18 21:18:37 +01:00
Rubidium
b4e5b12047
Codechange: remove unneeded locking from SmallStack
2025-03-16 14:13:51 +01:00
Peter Nelson
62b8b93476
Codechange: Add default initialisation for Rect to remove MemSetT.
2025-03-15 20:09:38 +00:00
Peter Nelson
91d22f7617
Codechange: Use EnumBitSet for VehStates. ( #13755 )
...
Renamed from VehStatus because pluralising that is weird.
2025-03-08 18:24:21 +00:00
Rubidium
c9624cef7c
Codechange: remove MallocT, CallocT and ReallocT
2025-03-04 00:10:01 +01:00
Rubidium
09716dba75
Codechange: do not use MallocT for the pool
...
Needed to make the placement new operator use Tindex over size_t because of
ambiguity for the delete operator variant that also has the size.
2025-02-28 20:15:42 +01:00
Rubidium
426b03b31a
Codechange: do not zero pool item upon allocation any more
2025-02-28 20:15:42 +01:00
Rubidium
15dcf56dad
Codechange: remove ZeroedMemoryAllocator
2025-02-28 20:12:44 +01:00
Rubidium
5cee804f98
Codechange: remove ZeroedMemoryAllocator from NWidgetBase
2025-02-22 14:38:33 +01:00
Jonathan G Rennison
8566030c53
Cleanup: Adjustments to comments to match code changes ( #13636 )
2025-02-22 13:28:35 +00:00
Peter Nelson
ca3b5ed6c1
Codechange: Allow iterating a BaseBitSet.
2025-02-16 22:24:25 +00:00
Rubidium
af00b835a1
Codechange: remove transitional supports from the pool
2025-02-16 19:31:37 +01:00
Rubidium
576a96c685
Codechange: let the ReusableBuffer use std::vector as storage
2025-02-16 19:31:13 +01:00
Rubidium
ab8177ea77
Codechange: strongly type CompanyID
2025-02-16 14:02:18 +01:00
Rubidium
b0eb8fe4db
Codechange: introduce ConvertibleThroughBase helpers
2025-02-16 14:02:18 +01:00
Peter Nelson
9049710051
Codechange: Allow (Re)setting a range of values in a BaseBitSet.
2025-02-13 22:02:02 +00:00
Rubidium
37c215f1fd
Fix #13513 , ec492cb267: std::numeric_limits<CompanyMask> not working causes no vehicles to exist
...
std::numeric_limits<T>::max() returns 0 instead of an error when the type is unknown.
Solve it by implementing and using Set() and All() in BaseBitSet in same way as std::bitset.
2025-02-09 22:50:55 +01:00
Rubidium
ec492cb267
Codechange: make CompanyMask a BaseBitSet implementation
2025-02-09 19:24:51 +01:00
Rubidium
e972033e11
Codechange: introduce BaseBitSet as base for EnumBitSet
2025-02-09 19:24:51 +01:00
Rubidium
2929411130
Codechange: introduce ReferenceThroughBaseContainer
...
This provides support for ConvertibleThroughBase positions passed to the
functions of a container that return a reference, specifically 'at(pos)'
and 'operator[](pos)'.
2025-02-09 15:28:03 +01:00
Rubidium
30127dfe90
Codechange: prepare the pool for strongly typed pool element IDs
2025-02-09 15:07:29 +01:00
Rubidium
04d53ed6f5
Codechange: remove operator!=s that are synthesized
2025-02-08 06:37:36 +01:00
Rubidium
760b8f74b7
Codechange: implement operator<=> and remove operators that are synthesized
2025-02-08 06:37:36 +01:00
Rubidium
8fbba84473
Codechange: move operator== inside MultiMap class and leave out ones that will be synthesized
2025-02-08 06:37:36 +01:00
Peter Nelson
965a45812a
Codechange: Allow masking invalid values passed to EnumBitSet.
2025-02-07 22:01:59 +00:00
Peter Nelson
bb43d60064
Codechange: Allow EnumBitSet to work with 64 bit underlying type.
2025-02-07 22:01:59 +00:00
Peter Nelson
603630c1ae
Codechange: Allow ConvertibleThroughBase types to be used as settings. ( #13466 )
2025-02-04 19:06:37 +00:00
Peter Nelson
64724b8893
Codechange: Make OverflowSafeInt ConvertibleThroughBase. ( #13449 )
2025-02-03 12:53:45 +00:00
Rubidium
b6a092f3e0
Codechange: make EnumBitSet ConvertibleThroughBase
2025-02-01 19:22:02 +01:00
Rubidium
55588b052e
Codechange: add concept of ConvertibleThroughBase for strong types
...
This makes it possible to write templated alternatives for ConvertibleThroughBase
which are then available for any (strong) type that implements a base() function
In the end making adding new ConvertibleThroughBase types less awkward.
2025-02-01 19:22:02 +01:00
Rubidium
89d0a688a9
Codechange: Use EnumBitSet for pool types
2025-02-01 17:04:04 +01:00
Rubidium
4ca1fe6c32
Codechange: replace MAX_UVALUE with std::numeric_limits::max
2025-02-01 01:29:02 +01:00
Peter Nelson
1dd4adc50c
Add: EnumBitSet function to test if All or Any enum values are set.
...
This allows multiple values to be tested in one operation.
2025-01-31 17:08:24 +00:00
Peter Nelson
6d1f56ce6b
Codechange: Allow using EnumBitSet over network commands.
2025-01-29 21:46:39 +00:00
Peter Nelson
fdb3555147
Add: EnumBitSet class to safely use enum class values as a bitset.
...
This maintains type-safe enum values and type-safe masks, and avoids using undefined enum values.
2025-01-29 21:46:39 +00:00
Peter Nelson
afc0745aa2
Codechange: Specify underlying type for all enums excluding those exposed to scripts. ( #13383 )
2025-01-28 22:17:34 +00:00
Peter Nelson
fb6781015a
Codechange: Use std::endian instead of TTD_ENDIAN defines.
2025-01-28 19:37:34 +00:00
Rubidium
4099acb946
Codechange: replace BSWAP32/BSWAP16 with std::byteswap
2025-01-28 19:22:12 +01:00
Rubidium
2481f2e085
Codechange: introduce own std::byteswap implementation
...
This is only available from C++23, but the implementation is fairly trivial
and the old variants of BSWAP32/BSWAP16 were not constexpr on MSVC. This was
due to all kinds of intrinsics that were added to get better code. However,
recent compilers with reasonable optimisation settings see the naive code and
will inject the appropriate optimised code (bswap op on x86-64).
For x86-64 recent is: Clang 6+ -O1, GCC 6+ -O2, MSVC 19.34+ /O1.
2025-01-28 19:22:12 +01:00
Rubidium
45444f9666
Codechange: rename DECLARE_POSTFIX_INCREMENT to DECLARE_INCREMENT_DECREMENT_OPERATORS
2025-01-28 18:56:58 +01:00
Rubidium
0207f91b8d
Codechange: use traits to add increment/decrement operators to enums when requested
2025-01-28 18:56:58 +01:00
Rubidium
ff0b2e1064
Codechange: use std::vector instead of ReallocT-ed memory
2025-01-19 22:49:06 +01:00
Peter Nelson
ce4012b7c7
Codechange: Use enum class for Borders values. ( #13290 )
...
This makes water border settings type-safe, and avoids mixing bit numbers with masks.
2025-01-08 17:55:53 +00:00
Peter Nelson
b653f875b0
Codechange: Space between template and < ( #13278 )
...
Make it all consistent so it matches CODINGSTYLE.
2025-01-04 17:56:14 +00:00