隱式型別轉換與範本推導
當嘗試將int 隱式轉換為Scalar
在提供的程式碼中:
<code class="cpp">func(a, 2);</code>
the編譯器嘗試將 int 2 隱式轉換為 Scalar
<code class="cpp">func(a, Scalar<int>{2}); // C++14</code>
或者,如果使用C 17,則可以為Scalar 定義推導指南,允許使用以下語法:
<code class="cpp">func(a, Scalar{2});</code>
最後,使用指定型別參數明確實例化範本函數也可以繞過隱式轉換的需要:
<code class="cpp">func<int>(a, 2); // Assuming Scalar<T>::Scalar(T) is not explicit</code>
以上是為什麼使用者定義類型的隱式類型轉換時範本推導失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!