High-level effect handlers in C++

15Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.

Abstract

Effect handlers allow the programmer to implement computational effects, such as custom error handling, various forms of lightweight concurrency, and dynamic binding, inside the programming language. We introduce cpp-effects, a C++ library for effect handlers with a typed high-level, object-oriented interface. We demonstrate that effect handlers can be successfully applied in imperative systems programming languages with manual memory management. Through a collection of examples, we explore how to program effectively with effect handlers in C++, discuss the intricacies and challenges of the implementation, and show that despite its limitations, cpp-effects performance is competitive and in some cases even outperforms state-of-the-art approaches such as C++20 coroutines and the libmprompt library for multiprompt delimited control.

Cite

CITATION STYLE

APA

Ghica, D., Lindley, S., Bravo, M. M., & Piróg, M. (2022). High-level effect handlers in C++. Proceedings of the ACM on Programming Languages, 6(OOPSLA2). https://doi.org/10.1145/3563445

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free