C ++ warum ist der Typ des Parameters von atomic_load Zeiger statt Referenz?

8

Ich stimme der Antwort in Wann Referenzen statt Zeiger zu verwenden.
Aber ich frage mich, warum C ++ atomic_load als

definiert %Vor%

statt

%Vor%

Kann mir jemand helfen?

    
Caesar 19.09.2017, 12:01
quelle

1 Antwort

10

Der Grund, warum wir diese freien Funktionsvorlagen überhaupt haben, ist die Quellkompatibilität mit C11:

%Vor%

C hat keine Referenzen.

Wenn Sie das nicht brauchen, dann wird c.load() oder die implizite Umwandlung in T gut funktionieren. Vergiss einfach, dass die freie Funktion jemals existiert hat.

(Dies ist auch der Grund, warum die memory_order Version der Vorlage für freie Funktionen atomic_load_explicit heißt: _Generic -powered Makros in C können verschiedene Argumenttypen verarbeiten, aber nicht variieren.)

    
T.C. 19.09.2017 12:38
quelle

Tags und Links