All Projects → ned14 → Outcome

ned14 / Outcome

Licence: apache-2.0
Provides very lightweight outcome<T> and result<T> (non-Boost edition)

Labels

Projects that are alternatives of or similar to Outcome

RocketXPlugin
🔥🔥 android 端编译加速插件🚀 自动识别未改动 module 并在编译流程中替换为 aar ,只编译改动模块,加速 Android apk 的编译速度。
Stars: ✭ 408 (-3.55%)
Mutual labels:  boost
Geometry
Boost.Geometry - Generic Geometry Library | Requires C++14 since Boost 1.75
Stars: ✭ 282 (-33.33%)
Mutual labels:  boost
Boost Cookbook
Online examples from "Boost C++ Application Development Cookbook":
Stars: ✭ 306 (-27.66%)
Mutual labels:  boost
openfluid
OpenFLUID framework and applications
Stars: ✭ 19 (-95.51%)
Mutual labels:  boost
Spirit
Boost.org spirit module
Stars: ✭ 256 (-39.48%)
Mutual labels:  boost
Kernels
This is a set of simple programs that can be used to explore the features of a parallel platform.
Stars: ✭ 287 (-32.15%)
Mutual labels:  boost
Paraphrase
Multi-core suitable Forth-like language
Stars: ✭ 27 (-93.62%)
Mutual labels:  boost
Libcopp
cross-platform coroutine library in c++
Stars: ✭ 398 (-5.91%)
Mutual labels:  boost
Boost guide
This is the sample code for Boost library Guide.
Stars: ✭ 268 (-36.64%)
Mutual labels:  boost
Node Poweredup
A Javascript module to interface with LEGO Powered Up components.
Stars: ✭ 293 (-30.73%)
Mutual labels:  boost
eigenpy
Bindings between Numpy and Eigen using Boost.Python
Stars: ✭ 88 (-79.2%)
Mutual labels:  boost
Vanilla Rtb
Real Time Bidding (RTB) - Demand Side Platform framework
Stars: ✭ 257 (-39.24%)
Mutual labels:  boost
S25client
Return To The Roots (Settlers II(R) Clone)
Stars: ✭ 288 (-31.91%)
Mutual labels:  boost
bh
R package providing Boost Header files
Stars: ✭ 73 (-82.74%)
Mutual labels:  boost
Cmake Templates
Some CMake Templates (examples). Qt, Boost, OpenCV, C++11, etc 一些栗子
Stars: ✭ 368 (-13%)
Mutual labels:  boost
contract
Contract programming for C++
Stars: ✭ 28 (-93.38%)
Mutual labels:  boost
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+666.19%)
Mutual labels:  boost
Innoextract
A tool to unpack installers created by Inno Setup
Stars: ✭ 407 (-3.78%)
Mutual labels:  boost
Hourboostr
Two programs for idling Steam game hours and trading cards
Stars: ✭ 372 (-12.06%)
Mutual labels:  boost
Quantum
Powerful multi-threaded coroutine dispatcher and parallel execution engine
Stars: ✭ 291 (-31.21%)
Mutual labels:  boost
master branch develop branch

CTest dashboard: https://my.cdash.org/index.php?project=Boost.Outcome

All tests passing source tarballs: https://github.com/ned14/outcome/releases

Documentation: https://ned14.github.io/outcome/

Purpose of this library

Outcome is a C++14 library for reporting and handling function failures. It can be used as a substitute for, or a complement to, the exception handling mechanism.

One use case is for contexts where using C++ exception handling is unsuitable for different reasons:

  • The high relative cost of throwing and catching a C++ exception.
  • Making some or all control paths explicitly detailed to aid code correctness auditing, as opposed to having hidden control paths caused by exceptions potentially thrown from any place.
  • Company policy to compile with exceptions disabled.
  • Maintaining a code base that was never designed with exception-safety in mind.
  • Parts of the programs/frameworks that themselves implement exception handling and cannot afford to use exceptions, like propagating failure reports across threads, tasks, fibers…

Usage as a single header file

Outcome v2 comes in single header file form. This is regenerated per commit. To fetch on Linux:

wget https://github.com/ned14/outcome/raw/master/single-header/outcome.hpp

On BSD:

fetch https://github.com/ned14/outcome/raw/master/single-header/outcome.hpp

If you have curl installed:

curl -O -J -L https://github.com/ned14/outcome/raw/master/single-header/outcome.hpp

Otherwise, simply download the raw file from above and place it wherever it suits you. If you might be debugging using Microsoft Visual Studio, you may find the debugger visualisation file at https://github.com/ned14/outcome/raw/master/include/outcome/outcome.natvis useful to include into your build.

Commits and tags in this git repository can be verified using:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

mDMEVvMacRYJKwYBBAHaRw8BAQdAp+Qn6djfxWQYtAEvDmv4feVmGALEQH/pYpBC
llaXNQe0WE5pYWxsIERvdWdsYXMgKHMgW3VuZGVyc2NvcmVdIHNvdXJjZWZvcmdl
IHthdH0gbmVkcHJvZCBbZG90XSBjb20pIDxzcGFtdHJhcEBuZWRwcm9kLmNvbT6I
eQQTFggAIQUCVvMacQIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRCELDV4
Zvkgx4vwAP9gxeQUsp7ARMFGxfbR0xPf6fRbH+miMUg2e7rYNuHtLQD9EUoR32We
V8SjvX4r/deKniWctvCi5JccgfUwXkVzFAk=
=puFk
-----END PGP PUBLIC KEY BLOCK-----
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].