您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Scope Guard
  2. [![Build Status](https://travis-ci.org/offa/scope-guard.svg?branch=master)](https://travis-ci.org/offa/scope-guard)
  3. [![GitHub release](https://img.shields.io/github/release/offa/scope-guard.svg)](https://github.com/offa/scope-guard/releases)
  4. [![License](https://img.shields.io/badge/license-GPLv3-yellow.svg)](LICENSE)
  5. ![C++](https://img.shields.io/badge/c++-17-green.svg)
  6. Implementation of *Scope Guards* (`scope_exit`, `scope_success`, `scope_fail`) and `unique_resource` as proposed in [**P0052R5**][2] (former [N3949][1]).
  7. There's a *C++14* implementation on the [**`cpp14`**](https://github.com/offa/scope-guard/tree/cpp14) Branch.
  8. ## Compatibility
  9. This implementation conforms to [P0052][2], except:
  10. ###### Namespace
  11. The namespace `sr` is used instead of `std`.
  12. ###### Filenames
  13. The filenames contain a `.h` extension. To enable the compatible header as specified in the document the CMake option `ENABLE_COMPAT_HEADER` can be used. This will generate and install an additional header named `scope` (without file extension).
  14. ## Documentation
  15. - [*P0052R5 - Generic Scope Guard and RAII Wrapper for the Standard Library*][2] (P. Sommerlad, A. L. Sandoval, E. Niebler, D. Krügler)
  16. - [*N3949 - Scoped Resource - Generic RAII Wrapper for the Standard Library*][1] (P. Sommerlad, A. L. Sandoval)
  17. ## License
  18. **GNU General Public License (GPL)**
  19. This program is free software: you can redistribute it and/or modify
  20. it under the terms of the GNU General Public License as published by
  21. the Free Software Foundation, either version 3 of the License, or
  22. (at your option) any later version.
  23. This program is distributed in the hope that it will be useful,
  24. but WITHOUT ANY WARRANTY; without even the implied warranty of
  25. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  26. GNU General Public License for more details.
  27. You should have received a copy of the GNU General Public License
  28. along with this program. If not, see <http://www.gnu.org/licenses/>.
  29. [1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3949.pdf
  30. [2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0052r5.pdf