Dies ist in Bezug auf den ersten formalen Parameter in this Frage.Kann jemand diese Syntax erklären? T (& arr) [arrsize] vs T & arr [arrsize]
HINWEIS:
T
undarrsize
werden hier als Vorlagenparameter übergeben.
T (&arr)[arrsize]
scheint eine Art Besetzung zu sein, aber zu was ich nicht sicher bin. &arr
ist kein Typname, sondern nur ein formaler Parametername mit einem Referenzsymbol daneben. Warum sollte man nicht einfach T* arr[]
setzen? Darüber hinaus war ich nicht der Ansicht, dass es in einer Sprache, die das Überladen von Funktionen implementiert, möglich war, in eine formale Parameterliste oder Nötigung zu kommen. (das führt Mehrdeutigkeit in Funktionsaufrufen ein). Ich nehme an, Template-Funktionen führen zu nützlicher Mehrdeutigkeit, also ist das Casting in diesem Kontext erlaubt - unter der Annahme, dass zwei Template-Funktionen nicht die gleiche Signatur haben, abgesehen vom Casting?
Wenn diese Vorlage instanziiert wird, welcher Typ wird dieses Argument? Ist es ein Zeiger oder ein Verweis auf ein statisches Array? einfach T*
; oder etwas anderes?
Array von '' 'T'''s wahrscheinlich – alexeibs
Oh danke," Copy-Paste "-Fehler –