Implizite Typkonvertierung und Vorlagenableitung
Beim Versuch, ein int implizit in einen Skalar
Im bereitgestellten Code:
<code class="cpp">func(a, 2);</code>
the Der Compiler versucht, den int 2 implizit in einen Skalar
<code class="cpp">func(a, Scalar<int>{2}); // C++14</code>
Alternativ kann bei Verwendung von C 17 ein Abzugsleitfaden für Scalar definiert werden, der die folgende Syntax ermöglicht:
<code class="cpp">func(a, Scalar{2});</code>
Schließlich kann die explizite Instanziierung der Vorlagenfunktion mit dem angegebenen Typargument auch die Notwendigkeit einer impliziten Konvertierung umgehen:
<code class="cpp">func<int>(a, 2); // Assuming Scalar<T>::Scalar(T) is not explicit</code>
Das obige ist der detaillierte Inhalt vonWarum schlägt die Vorlagenableitung bei impliziter Typkonvertierung für benutzerdefinierte Typen fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!