«overload-resolution» etiketlenmiş sorular


5
Belirsizliğe dahil olmayacaksa, bir yöntem eklemek neden belirsiz bir çağrı ekler?
Bu sınıfa sahibim public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution<M>(M something) { Console.WriteLine("Confused"); } } Ben böyle dersem: var blah = new Overloaded(); blah.ComplexOverloadResolution("Which wins?"); Normal WinnerKonsola yazar . Ancak başka bir yöntem eklersem: public void ComplexOverloadResolution(string something, object somethingElse = …

3
Bir dönüşüm operatörünün bu aşırı yüklenmesi neden seçildi?
Aşağıdaki kodu düşünün . struct any { template <typename T> operator T &&() const; template <typename T> operator T &() const; }; int main() { int a = any{}; } Burada ikinci dönüştürme operatörü aşırı yük çözünürlüğü ile seçilir. Neden? Anladığım kadarıyla, iki operatör sırasıyla operator int &&() constve hesabından …

3
C ++ 'ın ikinci bir şablon bağımsız değişkenini tahmin etmesini nasıl önleyebilirim?
İçinde bir yerde, aşağıdaki kodu olan bir C ++ kitaplığı ( strf ) kullanıyorum : namespace strf { template <typename ForwardIt> inline auto range(ForwardIt begin, ForwardIt end) { /* ... */ } template <typename Range, typename CharT> inline auto range(const Range& range, const CharT* sep) { /* ... */ } …

1
İşlev argümanı olarak {} neden belirsizliğe yol açmıyor?
Bu kodu düşünün: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } }; int …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.