Вопросы с тегом «overload-resolution»

117
Почему не вызывается общедоступный константный метод, если неконстантный - частный?

Рассмотрим этот код: struct A { void foo() const { std::cout << "const" << std::endl; } private: void foo() { std::cout << "non - const" << std::endl; } }; int main() { A a; a.foo(); } Ошибка компилятора: ошибка: 'void A :: foo ()' является закрытым '. Но когда я удаляю...

112
Зачем добавление метода добавляет неоднозначный вызов, если он не участвует в неоднозначности

У меня есть этот класс public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution<M>(M something) { Console.WriteLine("Confused"); } } Если я назову это так: var blah = new...

27
Почему выбрана эта перегрузка оператора преобразования?

Рассмотрим следующий код . struct any { template <typename T> operator T &&() const; template <typename T> operator T &() const; }; int main() { int a = any{}; } Здесь второй оператор преобразования выбирается разрешением перегрузки. Почему? Насколько я понимаю, два...

26
Как я могу предотвратить угадывание C ++ второго аргумента шаблона?

Я использую библиотеку C ++ ( strf ), которая где-то внутри имеет следующий код: namespace strf { template <typename ForwardIt> inline auto range(ForwardIt begin, ForwardIt end) { /* ... */ } template <typename Range, typename CharT> inline auto range(const Range& range, const...