Свързани въпроси 'variadic-functions'

Разнообразна шаблонна функция с аргументи от един и същи тип
Как да огранича шаблонна функция с различни варианти, така че всички нейни аргументи да бъдат от един и същи тип? Имам нужда от това за специализация на CommonType!T either(T...)(T a) if (a.length >= 1) { static if (T.length == 1)...
125 изгледи

Java varags не откриват, когато се извиква vararg метод в друг vararg метод
Приложих Java методи за разрешаване на IN и OR условие. По-долу е моят код. public static <T> boolean in(T parameter, T... values) { if (null != values) { System.out.println("IN values size.. " + values.length); return...
639 изгледи
schedule 26.09.2022

Как да определим края на списъка va_arg?
Имам функция foo(char *n, ...); Трябва да получа и използвам всички незадължителни char параметри. Имах идея да използвам while(va_arg(argPtr, char) != NULL) { ... } да разбера кога стигна до края на списъка. И така, ще работи ли,...
3142 изгледи
schedule 27.09.2022

Как правилно да съпоставите varargs в Mockito
Опитвам се да се подигравам на метод с vararg параметри, използвайки Mockito: interface A { B b(int x, int y, C... c); } A a = mock(A.class); B b = mock(B.class); when(a.b(anyInt(), anyInt(), any(C[].class))).thenReturn(b); assertEquals(b,...
67993 изгледи
schedule 07.11.2023

Как мога да гарантирам безопасността на типа на променливи аргументи?
В C бих искал да направя функция или макрос, които изглеждат така: void Log(char* what, ...) където ... трябва да са двойки ключ-стойност на const char*. Наистина бих искал код, който не следва това, да избухне по време на компилация....
172 изгледи
schedule 11.12.2022

указател към va_list в amd64 ABI
Имам притеснения относно различни функции под Linux amd64 (x86_64). Моят пример компилира и работи добре на linux i386 (ia32), но когато е създаден за linux amd64, GCC създава такива грешки: stdarg.c: In function ‘vtest’: stdarg.c:21:5:...
1653 изгледи
schedule 13.12.2023

Бих искал да греша тук, разбира се. Моля, покажете някакво потвърждение (документация или съответен анализ на изходния код на Qt), което показва, че създаването на джаджи в произволна нишка е ОК.
2292 изгледи
schedule 23.03.2024

Може ли std::function да се използва за съхраняване на функция с различни аргументи
Имам структура, която предавам около моето приложение, която съдържа куп функции за обратно извикване: typedef struct { std::function<void (void)> f1; std::function<void (int)> f2; std::function<int (float *)>...
3735 изгледи

Писане на променлив макрос, който използва имената на предадените аргументи
Искам да напиша променлив макрос, който по някакъв начин знае имената на предадените аргументи. Например: Кодът: int x = 2; float f = 4.6; char c = 'A'; char* str = "Bla bla"; PRINT("%d %f %c %s", x, f, c, str); // calling the macro...
331 изгледи

защо метод varargs трябва да бъде в отделен блок в java?
Защо varargs на метода трябва да са отделни от основното тяло на метода? Кодът по-долу е правилен, но защо не мога да сложа декларация на метод varargs в тялото на основния метод? public class TryVariableArgumentList { public static void...
79 изгледи
schedule 21.10.2022

c++ комбинира стойности от два (или повече) пакета с параметри
Как е възможно да се комбинират стойности от два пакета параметри в C++? С други думи, как се пише функция LetsStart<int, -1, 10, 3>("This is -1", "And this is 10", "3!!!"); което би извело -1 This is -1...
2301 изгледи

Технически, как работят променливите функции? Как работи printf?
Знам, че мога да използвам va_arg , за да напиша свои собствени променливи функции, но как работят променливите функции под капака, т.е. на ниво инструкции за асемблиране? Например, как е възможно printf да приема променлив брой аргументи?...
7094 изгледи
schedule 05.02.2024

Използване на var_arg за предаване на параметри за извиквания на функции
Пиша адаптер за комбиниране на два API (един в C и друг в C++). Ако дадена функция се извика на един API, трябва да предам идентификатора на обаждащия се и аргументите на функцията към адаптер и да извикам съответната функция с тази предадена...
444 изгледи
schedule 17.03.2024

Как мога да докладвам персонализирани грешки, когато при извикване на функция липсват някои аргументи?
Обучавам се на основите на MATLAB и съм заседнал как да създавам грешки за функции. Ето моят опит: function kinetic = KE(m,v) KE = 0.5*m*v*v %error messages if (isempty(m)) % mass is empty error('No mass given (argument 1)'); elseif...
69 изгледи

запишете списък с променливи аргументи за извиквания на fprintf
Пиша тежка многонишкова [>170 нишки] c++11 програма. Всяка нишка регистрира информация в един файл, използван от всички нишки. От съображения за производителност искам да създам нишка log , която записва информацията чрез fprintf() в глобалния...
151 изгледи

Разопаковане на масив в аргументи на метода
Както знаете, C# поддържа различни методи чрез ключовата дума params : int Add(params int[] xs) { return xs.Sum(); } Което след това може да бъде извикано с произволен брой аргументи, които желаете: Add(1); Add(1, 2); Add(1, 2, 3);...
6176 изгледи

Go: Променлива функция и твърде много аргументи?
Ето пример за проблема, който имам: package main import "fmt" func foo(a int, b ...int) { fmt.Println(a,b) } func main() { a := 0 aa := 1 b := []int{2,3,4} foo(a, aa, b...) } Когато стартирам това, получавам грешка too...
5707 изгледи
schedule 03.05.2024

Какъв е форматът на структурата x86_64 va_list?
Някой има ли справка за представянето на va_list в x86_64 ABI (този, който се използва в Linux)? Опитвам се да отстраня грешки в някакъв код, където стекът или аргументите изглеждат повредени и наистина би помогнало да разбера какво трябва да...
16930 изгледи
schedule 07.05.2024

Извикване на метод с помощта на отражение / Преобразуване на списък в Var Args
Имам списък с параметри и имам името на метода. Искам да извикам метода с помощта на отражение. Когато проверих java документа за Method.invoke, това е като Method.invoke(object o, Object args...). Знам какво да предам за първия параметър (т.е....
6865 изгледи

c++ извикващ конструктор на суперклас с va_arg
Имам базов клас, който включва конструктор със списък с променливи аргументи: class Super { public: Super(int num, ...); ... } Сега в моя конструктор на подклас трябва по някакъв начин да извикам този конструктор на суперклас, но как да...
797 изгледи
schedule 18.05.2024