Описание тега function-overloading

По вопросам, связанным с перегрузкой функций или методов.
1 ответ

Как избавиться от перегруженных функций

Это полностью надуманный пример, который я написал, изучая перегрузку функций в Swift. Следующие функции отличаются только типом возврата (первая функция неявно возвращает Void / () в то время как другой возвращается Int). func foo(x:Int, y:Int) { }…
06 май '16 в 19:08
3 ответа

c11 _Общие типы добавления

Как добавить дополнительные типы в c11 _Generic Functions? Вы должны #undef/re # определить это?(Если так, то следующая работа) или есть более хороший способ? #define to_str(X) _Generic((X), \ long double: ld_str, \ double: d_str, \ float: f_str, \ …
16 мар '12 в 09:48
1 ответ

Как я могу получить доступ к атрибутам из всех родительских классов?

class T(object): def f(self): pass class T1(T): fields = set(('x1', 'y1', 'z1')) class T2(T1): fields = set(('x2', 'y2')) t=T2() Я хочу звонок t.f() вернуть set(('x1','y1','z1','x2','y2')) и я не хочу переписывать 'f' в каждом дочернем классе, поним…
13 май '15 в 10:37
4 ответа

Перегрузка оператора ( =)

Я только начинающий в языке C++, и у меня есть несколько вопросов по этому коду. Я пытаюсь перегрузить некоторых операторов. string& operator = (char R) { string T = R ; *this = T; return *this; } Первый вопрос: почему мне нужно перегрузить опер…
09 мар '13 в 12:54
6 ответов

Поведение перегрузки функций с помощью const

Я работаю над g ++ и здесь я попытался перегрузить функцию, просто добавив const к параметру. Работает нормально и при запуске вызывает функцию без const Это поведение указано в стандарте C++? По какой причине она вызывает функцию без const void pri…
26 окт '14 в 12:44
3 ответа

Почему мы не находим правильную перегрузку оператора при использовании макроса?

Я пишу шаблон класса, который принимает произвольный указатель на функцию в качестве аргумента нетипичного шаблона. Я хотел бы использовать template <auto F> struct Foo; но мой компилятор (MSVC 2017.5) не поддерживает auto в списке параметров …
0 ответов

Поддерживает ли Python перегрузку функций несколькими сигнатурами с разным количеством позиционных аргументов?

Кажется, Python не поддерживает перегрузку функций: >>> def overload(x,y): ... return x*y ... >>> def overload(x,y,z): ... return x*y*z ... >>> overload(1,2) Traceback (most recent call last): File "<stdin>", line 1,…
29 янв '18 в 12:26
1 ответ

Проблемы соответствия кандидатов перегруженных функций

Я не уверен, что понимаю нюанс происходящего здесь и надеялся на объяснение. Я вызываю несколько перегруженных функций из шаблонной оболочки, lapack_gesvd_nothrow, Оттуда я звоню отдельным fxns, которые похожи на это: inline void lapack_gesvd(char *…
02 авг '13 в 20:30
1 ответ

Различное определение функции-члена согласно условию времени компиляции

Согласно этому ответу, я использую template <typename T, typename = typename enable_if<bool_verfier<T>()>::type> > classMember(const T& arg); В качестве сигнатуры функции для нескольких членов класса, где bool_verifier<T&…
1 ответ

Как я могу использовать result_of вместо decltype?

В этом ответе я создаю черту типа: template<typename T> using to_string_t = decltype(to_string(declval<T>())); Это работает просто отлично, но я изначально намеревался использовать result_of и теперь меня раздражает, что я не могу понять…
3 ответа

Динамическая отправка без шаблона посетителя

проблема Я работаю с уже существующей библиотекой, к исходному коду которой у меня нет доступа. Эта библиотека представляет собой AST. Я хочу скопировать части этого AST, но переименовать ссылки на переменные в процессе. Поскольку может существовать…
2 ответа

Аномалия перегрузки функции Scala

В Scala, почему эта перегрузка была разрешена? class log { def LogInfo(m: String, properties: Map[String, String]): Unit = { println(m) } def LogInfo(m: String, properties: Map[String, String], c: UUID = null): Unit = { println(m + c.toString()) } }…
0 ответов

Сбой перегрузки функции в шаблонном max_element

Я смущен, что почему я не могу перегрузить "комп" для std::max_element(absMcol.begin(), absMcol.end(), comp) в следующей функции Minvb, #include <cmath> #include <vector> #include <algorithm> #include <iostream> #include <…
12 апр '18 в 21:18
1 ответ

Почему я не могу вызвать перегруженную функцию таким образом?

Возьмите этот пример перегрузки функции: function pickCard(x: {suit: string; card: number; }[]): number; function pickCard(x: number): {suit: string; card: number; }; function pickCard(x): any { /* ... */ } В справочнике сказано: Обратите внимание, …
20 апр '16 в 14:07
2 ответа

Правила перегрузки функций

Посмотрите на этот код (например): #include <iostream> void print(unsigned int value); void print(float value); int main() { print('a'); print(0); print(3.14159); return 0; } Я получаю следующую ошибку: 'print (char)' неоднозначно В чем здесь …
12 мар '18 в 21:33
6 ответов

Перегрузка функции const

Я запутался, почему следующий код не выдает никакой ошибки, потому что переданные для отображения аргументы имеют тот же тип, т.е. char.Does const действительно имеет значение? #include<iostream> using namespace std; void display(char *p) { co…
26 июл '13 в 07:23
1 ответ

Функция перегрузки отличается количеством и типом параметров в Typescript, используя типы Union

Я пытаюсь перегрузить функцию, которая имеет две перегрузки, как показано ниже getData(): MyModel getData<T>(type:string):T Теперь, основываясь на деталях, найденных в блоге, я пытаюсь использовать union types чтобы обеспечить типы параметров,…
1 ответ

Неоднозначные /rvalue аргументы приводят к тому, что компилятор выбирает неправильную перегрузку

У меня есть домашний шаблон класса под названием Vec которая является бледной тенью: std::vector<T> Чтобы не изобретать колесо, перегрузка жатки для assign скопированы из: std::vector::assign ..так В рамках тестирования Str класс,..test код та…
01 мар '17 в 15:56
1 ответ

`long` и`double` одинаковы при преобразовании из `int ` компилятором

Я изучал перегрузку функций в C++, и я увидел неоднозначное условие, в программе, long add(long a){ long b = a; return b; } double add(double a){ double b = a; return b; } int main(){ int x; x = add(10); printf("x : %d", x); getch(); return 0; } При…
1 ответ

g++ не может найти перегруженную функцию после typecast

У меня перегружена функция void FuncGetSomething(string, double&) void FuncGetSomething(string, int&) void FuncGetSomething(string, bool&) .... Это должно работать так double myDbl = 0; FuncGetSomething("Somename", myDbl) //to get the ne…
17 окт '13 в 18:01