designfrage: futures
-
p.S.: was das "is_" oder nicht "is_" angeht: nachdem die Meinungen hier ziemlich 50:50 verteilt sind (wenn ich richtig gezählt habe) werde ich einfach nach meiner persönlichen Vorliebe "is_" und "get_" etc. verwenden.
(Was eigentlich irgendwie sowieso klar war, da die ganzen anderen Klassen in der Library auch eher "sprechend & lang zum schnell verstehen" als "schön kurz für kleine bildschirme" gehalten sind.)
-
hustbaer schrieb:
Eine andere Möglichkeit wäre der "is_finished" bzw. "is_ready" Funktion nen int als Returnwert zu verpassen wo dann 0 = läuft noch, 1 = erfolgreich, -1 = exception. Ist aber nicht sehr selbsterklärend, von daher werde ich das wohl eher nicht machen.
Wieso denn irgendwelche Zauberkonstanten? Wieso nicht eine Enumeration, die teil des futures ist, so dass man dann
if (foo.is_ready() == future<...>::exception)schreibt.
Wobei das auch doof ist.if (foo.is_ready())Soll ja auch Funktionieren.
Dann müsste man sich da einen Tick mehr Mühe geben und irgendwas zurückliefern, das sich in if() verwenden lässt, aber auch mit bestimmten vorgefertigten Konstanten (successfull, ...) vergleichen lässt.
-
Ich finde die Future-Sachen auch toll, sie werden höchstwahrscheinlich in C++0x oder TR2 enthalten. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2276.html
Bin sogar der Meinung, das Herb Sutter es mal als Sprachfeature (und nicht als Lib) vorgestellt hatte.
-
Als teil des Concur-Projekts
-
Helium schrieb:
Wieso denn irgendwelche Zauberkonstanten? Wieso nicht eine Enumeration, die teil des futures ist, so dass man dann
if (foo.is_ready() == future<...>::exception)schreibt.
Wobei das auch doof ist.if (foo.is_ready())Soll ja auch Funktionieren.
Vielleicht
switch (foo.get_state()) { case future<...>::busy: case future<...>::ready: case future<...>::exception_occured: }und dazu
inline bool is_ready() const { return get_state() == ready; } // etc.
-
-
-
Ach net, ist irgendwie schade, dass du keinen Nick mehr hast

-
Badestrand schrieb:
Ach net, ist irgendwie schade, dass du keinen Nick mehr hast

warum? es hat sich kaum was dadurch verändert.

-
Wenn es nicht schon draufsteht hustbaer, kannst du dann der Zu-tun-Liste auch noch ultraleichtgewichtige Threads hinzufügen? Ich möchte mehr erlang-Stil in C++, hab aber zz keine anständige „Umgebung“ um sowas zu basteln
