You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[](https://coveralls.io/github/steve-downey/expected?branch=main)[](https://www.example.com)
9
+
10
+
`beman.expected` is a C++ library implementing the std::expected specification conforming to [The Beman Standard](https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md).
11
+
12
+
**Implements**: `std::expected` proposed in [Expected over References (PnnnnRr)](https://wg21.link/PnnnnRr).
13
+
14
+
**Status**: [Under development and not yet ready for production use.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#under-development-and-not-yet-ready-for-production-use)
15
+
16
+
## License
17
+
18
+
`beman.expected` is licensed under the Apache License v2.0 with LLVM Exceptions.
19
+
20
+
## Usage
21
+
2
22
3
23
Full runnable examples can be found in [`examples/`](examples/).
4
24
@@ -8,113 +28,241 @@ Full runnable examples can be found in [`examples/`](examples/).
8
28
9
29
This project requires at least the following to build:
10
30
11
-
* A C++ compiler that conforms to the C++20 standard or greater
12
-
* CMake 3.30 or later
31
+
* A C++ compiler that conforms to the C++17 standard or greater
32
+
* CMake 3.28 or later
13
33
* (Test Only) GoogleTest
14
34
15
-
You can disable building tests by setting CMake option `BEMAN_EXPECTED_BUILD_TESTS` to
16
-
`OFF` when configuring the project.
35
+
You can disable building tests by setting CMake option
36
+
[`BEMAN_EXPECTED_BUILD_TESTS`](#beman_expected_build_tests) to `OFF`
37
+
when configuring the project.
38
+
39
+
Even when tests are being built and run, some of them will not be compiled
40
+
unless the provided compiler supports **C++20** ranges.
41
+
42
+
> [!TIP]
43
+
>
44
+
> The logs indicate examples disabled due to lack of compiler support.
45
+
>
46
+
> For example:
47
+
>
48
+
> ```txt
49
+
> -- Looking for __cpp_lib_ranges
50
+
> -- Looking for __cpp_lib_ranges - not found
51
+
> CMake Warning at examples/CMakeLists.txt:12 (message):
52
+
> Missing range support! Skip: identity_as_default_projection
53
+
>
54
+
>
55
+
> Examples to be built: identity_direct_usage
56
+
> ```
17
57
18
58
### Supported Platforms
19
59
20
-
| Compiler | Version | C++ Standards | Standard Library |
* LLVM Clang++ (with libstdc++ or libc++) versions 17–21
64
+
* AppleClang version 17.0.0 (i.e., the [latest version on GitHub-hosted macOS runners](https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md))
65
+
* MSVC version 19.44.35215.0 (i.e., the [latest version on GitHub-hosted Windows runners](https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md))
66
+
67
+
> [!NOTE]
68
+
>
69
+
> Versions outside of this range would likely work as well,
70
+
> especially if you're using a version above the given range
71
+
> (e.g. HEAD/ nightly).
72
+
> These development environments are verified using our CI configuration.
31
73
32
74
## Development
33
75
34
-
See the [Contributing Guidelines](CONTRIBUTING.md).
76
+
### Develop using GitHub Codespace
35
77
36
-
## Integrate beman.expected into your project
78
+
This project supports [GitHub Codespace](https://github.com/features/codespaces)
79
+
via [Development Containers](https://containers.dev/),
80
+
which allows rapid development and instant hacking in your browser.
81
+
We recommend using GitHub codespace to explore this project as it
82
+
requires minimal setup.
83
+
84
+
Click the following badge to create a codespace:
85
+
86
+
[](https://codespaces.new/bemanproject/expected)
37
87
38
-
### Build
88
+
For more documentation on GitHub codespaces, please see
0 commit comments