2017-05-19 2 views

Antwort

5

Wie in der Referenz erwähnt, wäre dies möglich if void were a regular type.

void get_value() { 
    void x; 
    return x; 
} 

So funktioniert es in einigen anderen Sprachen, so ist es nicht ohne Präzedenzfall. In anderen Sprachen wird der Typ "Einheit" genannt, weil er genau einen möglichen Wert hat. (Andere Sprachen haben auch den "Null" -Typ, der keine möglichen Werte hat. Wenn Sie also versuchen, einen zu erstellen, erhalten Sie einen Fehler. Er heißt "null", hat aber nichts mit Null-Zeigern zu tun.)

+4

Um die Frage "was wird von Leuten erwartet?" Direkt zu beantworten, machen sie nichts anderes. 'Zukunft ' geht nicht weg, es braucht keine Spezialisierung. –

+0

@DrewDormann: Von dem, was ich verstehe, müssten Sie schließlich einige Änderungen vornehmen, da das Entfernen der Spezialisierung "std :: promise " bedeuten würde, dass die Funktion 'set_value()' nicht mehr existiert und Sie 'set_value' aufrufen müssten ({}) stattdessen. –

-3

Der Zweck von a std :: future soll wissen, wann ein Prozess ohne Rückgabewert beendet wurde. Im Grunde ist es ein Synchronisationswerkzeug.

+0

Dies beantwortet die Frage nicht. –

Verwandte Themen