Skip to content

Commit bc769ca

Browse files
Update README.md
Very simple merge of README file from first SCOPE project
1 parent 231c3f4 commit bc769ca

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,22 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
88
![Continuous Integration Tests](https://github.com/bemanproject/scope/actions/workflows/ci_tests.yml/badge.svg)
99
![Lint Check (pre-commit)](https://github.com/bemanproject/scope/actions/workflows/pre-commit.yml/badge.svg)
1010

11+
## Overview
12+
During the C++20 cycle [P0052 Generic Scope Guard and RAII Wrapper for the Standard Library](https://wg21.link/P0052) added 4 types: `scope_exit`, `scope_fail`, `scope_success` and `unique_resource` to [LTFSv3](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4908#scopeguard). In the intervening time, two standard libraries have implemented support as well as Boost. With the imperative for safety and security in C++ developers need every tool in the toolbox. The authors believe it is time to move this facility into the standard. The paper will re-examine the five year old design and any learning from deployment of the LTFSv3.
13+
14+
For discussions of this library see:
15+
- [Discourse for discussion of scope](https://discourse.bemanproject.org/t/scope-library/315)
16+
17+
## Prior And Other Work
18+
- TS design and wording paper [p0052 - Generic Scope Guard and RAII Wrapper for the Standard Library](https://wg21.link/p0052)
19+
- TS adoption paper [p1411 - Please reconsider <scope> for C++20](https://wg21.link/p1411)
20+
- pointer to GSL (todo)
21+
- [Boost.scope](https://www.boost.org/doc/libs/1_87_0/libs/scope/doc/html/index.html)
22+
# Examples
23+
- [TS example of scope_exit](https://godbolt.org/z/T5KhTYjP7)
24+
25+
---
26+
1127
`beman.scope` is a minimal C++ library conforming to [The Beman Standard](https://github.com/bemanproject/beman/blob/main/docs/BEMAN_STANDARD.md).
1228
This can be used as a template for those intending to write Beman libraries.
1329
It may also find use as a minimal and modern C++ project structure.

0 commit comments

Comments
 (0)