Вопросы по теме 'overload-resolution'
Поведение методов перегрузки С# с интерфейсом
Возможный дубликат: C# 4: конфликтующие перегруженные методы с необязательными параметрами
У меня просто есть одно небольшое исследование и создан следующий код.
namespace Test {
class Program
{
public interface ITestA
{...
2988 просмотров
schedule
12.04.2022
Почему это требуется здесь (метод расширения)?
Мета-примечание: поиск по слову "это" невозможен.
Я только что столкнулся со странным сценарием в ASP.NET, где требуется ключевое слово this . Но это не для разрешения между локальными переменными и переменными экземпляра, как вы могли бы...
263 просмотров
schedule
24.02.2023
Разрешение перегрузки метода с использованием динамического аргумента
Возможно, на это уже был дан ответ. Я вижу много вопросов о «разрешении перегрузки динамического метода», но ни один из них не связан с передачей аргумента dynamic . В следующем коде в Test последний вызов M не может быть разрешен ( не...
2486 просмотров
schedule
16.05.2024
Странное поведение компилятора С# (разрешение перегрузки)
Я обнаружил очень странное поведение компилятора С# для следующего кода:
var p1 = new SqlParameter("@p", Convert.ToInt32(1));
var p2 = new SqlParameter("@p", 1);
Assert.AreEqual(p1.Value, p2.Value); // PASS
var x = 0;
p1 = new...
276 просмотров
schedule
05.01.2023
правила разрешения перегрузки c#
предположим следующие методы расширения:
public static string ToFooBarString(this object obj)
{
...
}
public static string ToFooBarString< T >(this IEnumerable< T > obj)
{
...
}
Теперь я вызываю это поверх реализации интерфейса...
180 просмотров
schedule
19.10.2022
Разрешение не виртуального метода - почему это происходит
Мое понимание (в С#) того, как разрешаются невиртуальные методы, заключается в том, что это зависит от типа переменной (а не от типа экземпляра).
Взгляните на код ниже.
class Program
{
static void Main(string[] args)
{
Sedan...
162 просмотров
schedule
04.09.2023
Разрешение перегрузки при применении оператора | к перечислениям различных типов
После прочтения недавнего вопроса Операции между различными типами перечислений разрешены в другом объявлении перечисления, но не в другом месте . Я придумал этот пример. :
enum Alpha : long
{
X,
}
enum Beta : ulong...
224 просмотров
schedule
08.02.2024
Строковый литерал соответствует логической перегрузке вместо std::string
Я пытаюсь написать класс С++ с некоторыми перегруженными методами:
class Output
{
public:
static void Print(bool value)
{
std::cout << value ? "True" : "False";
}
static void Print(std::string value)
{...
6315 просмотров
schedule
30.09.2022
Неоднозначность, связанная с шаблонным оператором преобразования и неявным конструктором копирования
clang и gcc различаются по поведению для следующего кода:
struct foo
{
foo(int);
};
struct waldo
{
template <typename T>
operator T();
};
int main()
{
waldo w;
foo f{w};
}
Этот код принимает clang с вызовом...
768 просмотров
schedule
25.05.2022
Неоднозначное разрешение перегрузки С++ - GCC
Я пытаюсь понять, почему GCC выбирает f(char, A<C, 5> &var) для разрешения перегрузки в коде ниже:
template <class C, int N> struct A { };
template <class C> struct A<C, 8> { static_assert(sizeof(C) > 8, "Assertion...
314 просмотров
schedule
10.01.2024
Неопределенная перегрузка универсального метода с типами, допускающими значение NULL
Скажем, у меня есть два общих перегруженных метода формы:
public string Do<T>(T maybeValue, Func<T, string> func)
where T : class
{
if(maybeValue == null) return null;
return func(maybeValue);
}
public string Do<T>(T?...
1077 просмотров
schedule
05.09.2022
Перегрузка функций становится неоднозначной
При перегрузке функций:
void add(int a)
{
a=7;
cout<<"int";
}
void add(double a)
{
a=8.4;
cout<<"double";
}
void add(int *b)
{
*b=4;
cout<<"pointer";
}
int main()
{
char i='a'; //char
add(i);...
471 просмотров
schedule
21.08.2022
Приоритет инициализации списка от объекта того же типа
#include <iostream>
#include <initializer_list>
using namespace std;
struct CL
{
CL(){}
CL (std::initializer_list<CL>){cout<<1;}
CL (const CL&){cout<<2;}
};
int main()
{
CL cl1;
CL cl2 {cl1};...
277 просмотров
schedule
13.03.2022
Kotlin: встроенная лямбда и неоднозначность разрешения перегрузки
У меня есть простой фабричный шаблон, где реализация определяется разрешением перегрузки. Проблема в том, что компилятор Kotlin жалуется на «Неоднозначность разрешения перегрузки..» для встроенной лямбды.
class Foo(){
companion object Factory...
1387 просмотров
schedule
02.11.2022
Пожелание: скрытие устаревшего метода другой перегрузкой с использованием параметров по умолчанию
Пожалуйста, подождите, это не (совсем!) Дубликат любого из этих ответов SO:
Конфликт перегруженных методов с необязательными параметрами
Разрешение перегрузки и дополнительные параметры в C # 4
Вызов метода перегрузки с параметрами по...
212 просмотров
schedule
06.07.2023
путаница, перегружающая функции-члены для rvalue и lvalues
У меня есть следующая установка:
struct foo
{
void bar( ) & { std::cout << "lvalue\n"; }
void bar( ) && { std::cout << "rvalue\n"; }
~foo( ) { bar( ); }
};
int main( int arg, char **argv )
{
foo{...
85 просмотров
schedule
25.04.2024
Определите, какая перегрузка будет вызываться при передаче типа в качестве ссылки
У меня есть бесплатные функции foo , которые перегружены для определенных пользователем типов X следующим образом ( C является библиотечным типом, вызывающим foo ):
template <typename C>
void foo(C&, const X&) {...}
Я могу...
88 просмотров
schedule
23.11.2023
Разрешение перегрузки со ссылками на методы и специализациями интерфейса функций для примитивных типов
Допустим, у нас есть класс и перегруженная функция:
public class Main {
static final class A {
}
public static String g(ToIntFunction<? extends A> f) {
return null;
}
public static String g(ToDoubleFunction<?...
192 просмотров
schedule
09.01.2023
Разве не имеет смысла перегрузить noexcept?
Я пытаюсь понять функцию noexcept. Я знаю, что это может сбивать с толку, но, кроме того, это не может быть выведено из вызывающей функции, когда это возможно.
Это нерабочий пример этой ситуации,
void f(){}
void f() noexcept{} // not allowed...
659 просмотров
schedule
17.05.2024
Несоответствие в поиске имени среди разных компиляторов
Прежде всего, не стесняйтесь предлагать лучшее название для этого вопроса.
Рассмотрим следующую программу:
#include <numeric>
namespace N { class C {}; }
int operator+( int i, N::C ) { return i+1; }
int main() {
N::C a[10];...
124 просмотров
schedule
10.02.2023