Свързани въпроси 'overload-resolution'

Резолюция на претоварване с шаблони и препратки към rvalue
Това поведение при разрешаване на претоварване ме озадачава: #include "stdio.h" template<class T> class C { public: C(T v): m(v) {}; T m; template<class U> T f(U &&p) { printf("rRef...
101 изгледи
schedule 16.09.2022

Разрешаване на претоварване: Предпочитан ли е оператор за директно преобразуване (като следствие от елизия на копиране)?
дадени struct E { }; struct P { explicit P(E) {} }; struct L { operator E() {return {};} operator P() {return P{E{}};} }; Според езиковия стандарт C++17 трябва ли изразът P{L{}} да се компилира? Различните компилатори дават...
178 изгледи

Относно разрешаването на претоварването на оператора
Да предположим, че два класа имат следния явен и явен операторен модел: class Foo { public static implicit operator decimal (Foo foo) { throw new NotImplementedException(); } public static implicit operator Foo (decimal...
195 изгледи

Защо тези претоварвания не са двусмислени?
Следният код се компилира добре с gcc и clang. template <typename T> struct identity { typedef T type; }; template <typename T> void foo(typename identity<T>::type); template <typename T> void foo(T); int main() {...
191 изгледи

Разрешаване на претоварване: Как това не е двусмислено?
Да предположим, че имаме този код, копиран от отделен въпрос: namespace x { void f() { } class C { void f() { using x::f; f(); // <== } }; } Името f на...
114 изгледи

Защо се избира генеричен метод, когато съществува негенеричен?
Програмата по-долу произвежда този резултат: Foo<T> called Process is terminated due to StackOverflowException. И така, Foo(baz) извиква общия Foo<T> , но Bar(baz) рекурсира и не извиква Bar<T> . Аз съм на C# 5.0...
434 изгледи

Директната инициализация на списък се компилира успешно, но нормалната директна инициализация е неуспешна, защо?
Например кодирайте така: struct A { A(int); }; struct B { B(A); }; int main() { B b{{0}}; // OK B c({0}); // error } Съобщенията за грешка са: f.cc: In function 'int main()': f.cc:7:9: error: call of overloaded...
347 изгледи
schedule 28.01.2024

Разрешаване на име на член по време на изпълнение
При даден тип , име и подпис , как мога да направя търсене на член на член с име име > и подпис подпис с помощта на правилата на C# от 7.4 (7.4 е номерът на главата от спецификацията на езика C#) (или поне част от тях... Да кажем, че мога да...
438 изгледи