Wie wählt der Compiler die statische Array-Version der Vorlage über den Zeiger?

8

Ich versuche etwas in der Nähe zu tun:

%Vor%

... aber beim Aufruf von StringLength ("abc") findet der Compiler es mehrdeutig:

%Vor%

(Dieser Test wurde in VS2013 durchgeführt.)

Ich möchte einfach die Stresse vermeiden, wenn die Größe verfügbar ist. Gibt es eine Möglichkeit, dies zu tun, oder eine bessere Option als das, was ich versuche?

    
scobi 09.12.2014, 09:56
quelle

2 Antworten

3

Nehmen Sie einfach den Zeiger mit const-Verweis, der die Array-Zeiger-Konvertierung während der Argumentableitung des Templates blockiert:

%Vor%

Demo .

    
T.C. 09.12.2014, 10:17
quelle
2

So funktioniert es:

%Vor%

... aber bist du dir sicher, dass das eine gute Idee ist? Ich weiß, dass du diese Diskussion vermeiden willst, aber es ist ... schwer. Ich meine, bedenke

%Vor%

Es ist nicht genau POLA-konform.

    
Wintermute 09.12.2014 10:10
quelle

Tags und Links