4 ms·
I disagree. You are suggesting everyone should write error handling code manually rather than rely on compiler.
by codedokode 10y ago
I disagree. You are suggesting everyone should write error handling code manually rather than rely on compiler.
- deleted 10y ago[deleted]
- vertex-four 10y agoNot really. See Rust/Scala/Haskell's Result/Either type, which has compiler support, but that compiler support is lightweight - you use the same control structures and flows as with regular code.
- lmm 10y agoThat's a great approach, but needs sum types and HKT to be effective, neither of which C++ really has (std::variant exists but doesn't always behave as a proper sum type AIUI) at present.
- vertex-four 10y agoRust manages it without HKT quite reasonably (rather than implementing generic monads, it has the `?` operator, which is syntax-sugar for something like [0]), though sum types are a necessity. [0] match whatever { Ok(v) => v, Err(e) => return Err(From::from(e)) }
- lmm 10y agoAh, last I knew they were relying on macros. Still, ? is an ugly special case where with HKT it could be a reusable general operator.
- vertex-four 10y agoAbsolutely - there's currently discussion around a Carrier trait which would make it generic, once we have some variety of HKT. Still, it's good enough for now, and any future development of it will be backwards-compatible.