Skip to content

Commit d79288c

Browse files
committed
Update readme
1 parent c51e3a2 commit d79288c

1 file changed

Lines changed: 22 additions & 39 deletions

File tree

README.md

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ See the library header at
1515
```cpp
1616
namespace eggs
1717
{
18-
template <typename Value, auto Value::*Key>
18+
template <
19+
typename Value,
20+
auto Key,
21+
typename Compare = std::less<key-type>,
22+
typename Allocator = std::allocator<Value>
23+
>
1924
class keyed_set;
2025
}
2126
```
@@ -54,11 +59,12 @@ eggs::keyed_set<Employee, &Employee::id> from_vec(std::from_range, vec);
5459
## Requirements
5560
5661
The library requires a C++23-conformant compiler and standard library.
57-
It has been tested with:
62+
It is continuously tested with:
5863
59-
- GCC 14+
60-
- Clang 17+ (with libc++ or libstdc++)
61-
- MSVC 19.38+ (VS 2022 17.8+)
64+
- GCC 14 and 16
65+
- Clang 18 and 22 (libstdc++ and libc++)
66+
- MSVC 2022 and 2026
67+
- Clang-CL 20 (Windows)
6268
6369
There are no external dependencies.
6470
@@ -82,56 +88,33 @@ target_link_libraries(my_target PRIVATE Eggs::KeyedSet)
8288
| Option (top-level) | Option (subdirectory) | Default | Description |
8389
|---|---|---|---|
8490
| `BUILD_TESTING` | `EGGS_KEYED_SET_BUILD_TESTING` | `ON` / `OFF` | Build the test suite |
85-
| `BUILD_EXAMPLE` | `EGGS_KEYED_SET_BUILD_EXAMPLE` | `ON` / `OFF` | Build the example |
91+
| `BUILD_EXAMPLES` | `EGGS_KEYED_SET_BUILD_EXAMPLES` | `ON` / `OFF` | Build the examples |
8692
| `ENABLE_INSTALL` | `EGGS_KEYED_SET_ENABLE_INSTALL` | `ON` / `OFF` | Install the library |
8793

8894
### Configuring and building with presets
8995

9096
The project ships a `CMakePresets.json` with named configurations for the
91-
most common workflows. CMake 3.23 or later is required to use presets.
97+
most common workflows. CMake 3.25 or later is required to use presets.
9298

9399
```sh
94100
# List all available presets
95101
cmake --list-presets
96102

97-
# Configure + build + test in one go (system compiler, Debug)
98-
cmake --preset dev
99-
cmake --build --preset dev
100-
ctest --preset dev
103+
# Configure, build, and test (GCC, Debug)
104+
cmake --preset dev-gcc
105+
cmake --build --preset dev-gcc-debug
106+
ctest --preset dev-gcc-debug
101107

102-
# Explicit toolchain variants
103-
cmake --preset dev-gcc && cmake --build --preset dev-gcc && ctest --preset dev-gcc
104-
cmake --preset dev-clang && cmake --build --preset dev-clang && ctest --preset dev-clang
105-
106-
# Release build
107-
cmake --preset release-gcc && cmake --build --preset release-gcc
108-
109-
# Address + UB sanitizers
110-
cmake --preset asan && cmake --build --preset asan && ctest --preset asan
111-
112-
# Thread sanitizer
113-
cmake --preset tsan && cmake --build --preset tsan && ctest --preset tsan
114-
115-
# Visual Studio 2022 (multi-config)
116-
cmake --preset vs2022
117-
cmake --build --preset vs2022-debug
118-
ctest --preset vs2022
108+
# Other toolchain variants
109+
cmake --preset dev-clang # Clang with libstdc++
110+
cmake --preset dev-clang-libcxx # Clang with libc++
111+
cmake --preset dev-msvc # MSVC x64
112+
cmake --preset dev-clang-cl # Clang-CL x64
119113
```
120114

121115
Build trees land in `build/<preset-name>/` so all presets coexist without
122116
interfering.
123117

124-
#### Local overrides
125-
126-
Copy the provided `CMakeUserPresets.json` template (it is `.gitignore`d)
127-
to point at a specific compiler installation, set a custom install prefix,
128-
or wire in a vcpkg / Conan toolchain:
129-
130-
```sh
131-
# Example: use a locally built GCC 15
132-
cmake --preset dev-gcc15 # defined only in your CMakeUserPresets.json
133-
```
134-
135118
## C++26 AssociativeContainer conformance
136119

137120
`keyed_set` satisfies every expression listed in

0 commit comments

Comments
 (0)