All Projects → ptal → Expected

ptal / Expected

What did you expect?

Labels

Projects that are alternatives of or similar to Expected

Fp Core.rs
A library for functional programming in Rust
Stars: ✭ 772 (+583.19%)
Mutual labels:  monad
Momi
Monadic middleware
Stars: ✭ 57 (-49.56%)
Mutual labels:  monad
Cats Stm
An STM implementation for Cats Effect
Stars: ✭ 106 (-6.19%)
Mutual labels:  monad
Witchcraft
Monads and other dark magic for Elixir
Stars: ✭ 864 (+664.6%)
Mutual labels:  monad
Circuit Breaker Monad
Circuit Breaker pattern as a monad
Stars: ✭ 52 (-53.98%)
Mutual labels:  monad
Iter
Simple iterator abstract datatype, intended to iterate efficiently on collections while performing some transformations.
Stars: ✭ 71 (-37.17%)
Mutual labels:  monad
Ltupatternfactory
Lambda the ultimate Pattern Factory: FP, Haskell, Typeclassopedia vs Software Design Patterns
Stars: ✭ 735 (+550.44%)
Mutual labels:  monad
Masala Parser
Javascript Generalized Parser Combinators
Stars: ✭ 110 (-2.65%)
Mutual labels:  monad
Tsoption
Correct, easy to use Option type for TypeScript. 🦄
Stars: ✭ 53 (-53.1%)
Mutual labels:  monad
Ok jose
Pipe elixir functions that match ok/error tuples or custom patterns.
Stars: ✭ 91 (-19.47%)
Mutual labels:  monad
Perhaps
A monad, perhaps.
Stars: ✭ 35 (-69.03%)
Mutual labels:  monad
Happy
the alchemist's happy path with elixir
Stars: ✭ 37 (-67.26%)
Mutual labels:  monad
Cyclops
An advanced, but easy to use, platform for writing functional applications in Java 8.
Stars: ✭ 1,180 (+944.25%)
Mutual labels:  monad
Purify
Functional programming library for TypeScript - https://gigobyte.github.io/purify/
Stars: ✭ 843 (+646.02%)
Mutual labels:  monad
Functionaljava
Functional programming in Java
Stars: ✭ 1,472 (+1202.65%)
Mutual labels:  monad
Lambda
Functional patterns for Java
Stars: ✭ 737 (+552.21%)
Mutual labels:  monad
Httpz
purely functional http client with scalaz.Free
Stars: ✭ 67 (-40.71%)
Mutual labels:  monad
F
Functional stuff for Python
Stars: ✭ 113 (+0%)
Mutual labels:  monad
Crocks
A collection of well known Algebraic Data Types for your utter enjoyment.
Stars: ✭ 1,501 (+1228.32%)
Mutual labels:  monad
Grokking Monad
购买 👉 https://gum.co/grokking-monad 在线阅读 👉
Stars: ✭ 87 (-23.01%)
Mutual labels:  monad

!!! WARINING !!!

This repository is abandoned.

This proposal has moved to this repository https://github.com/viboes/std-make/blob/master/doc/proposal/expected/ and https://github.com/viboes/std-make/tree/master/doc/proposal/expected.

Please, add any issues in the new repository.

!!! WARINING !!!

Expected

Expected has been proposed to the C++ standard committee. The current document is N4109 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4109.pdf).

A library for expected objects for C++17. This is the reference implementation of proposal N4109 (see see https://github.com/ptal/std-expected-proposal).

Supported compilers

  • Clang 3.2
  • G++ 4.8.0 (and probably later)
  • VS14 CTP 3. Note that this compiler cannot do enough constexpr for Expected (or Boost for that matter) to turn it on, but it appears that MSVC doesn't mind and all unit tests pass anyway. It is possible VS14 RTM will do enough constexpr that it can be turned on.
  • VS2013 which has the same limitations as VS14 (no constexpr). This uses an unrestricted union emulation which works well enough.

Usage

For usage examples and the overview see https://github.com/ptal/std-expected-proposal

Differences from N4109

  • The constructor taking initializer_list argument is not constexpr. This is because initializer_list operations are not constexpr in C++11.
  • Member function value_or does not have rvalue reference overload in GCC inferior to 4.8.1. This is because rvalue overloading on *this is not supported until GCC 4.8.1.
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].