source: src/libcfa/containers/maybe @ ef952d7

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumwith_gc
Last change on this file since ef952d7 was 9236060, checked in by Rob Schluntz <rschlunt@…>, 7 years ago

Merge branch 'master' into references

  • Property mode set to 100644
File size: 1.2 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// maybe -- May contain a value.
8//
9// Author           : Andrew Beach
10// Created On       : Wed May 24 14:43:00 2017
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Sat Jul 22 10:00:52 2017
13// Update Count     : 4
14//
15
16#pragma once
17
18#include <stdbool.h>
19
20// DO NOT USE DIRECTLY!
21forall(otype T)
22struct maybe {
23    bool has_value;
24    T value;
25};
26
27
28forall(otype T)
29void ?{}(maybe(T) & this);
30
31forall(otype T)
32void ?{}(maybe(T) & this, T value);
33
34forall(otype T)
35void ?{}(maybe(T) & this, maybe(T) other);
36
37forall(otype T)
38void ^?{}(maybe(T) & this);
39
40forall(otype T)
41maybe(T) ?=?(maybe(T) & this, maybe(T) other);
42
43forall(otype T)
44bool ?!=?(maybe(T) this, zero_t);
45
46/* Waiting for bug#11 to be fixed.
47forall(otype T)
48maybe(T) maybe_value(T value);
49
50forall(otype T)
51maybe(T) maybe_none();
52*/
53
54forall(otype T)
55bool has_value(maybe(T) * this);
56
57forall(otype T)
58T get(maybe(T) * this);
59
60forall(otype T)
61void set(maybe(T) * this, T value);
62
63forall(otype T)
64void set_none(maybe(T) * this);
65
66// Local Variables: //
67// mode: c //
68// tab-width: 4 //
69// End: //
Note: See TracBrowser for help on using the repository browser.