Вопросы по теме 'variadic-functions'

Как правильно сопоставить варарги в 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, a.b(1,...
67993 просмотров
schedule 07.11.2023

Каков формат структуры x86_64 va_list?
У кого-нибудь есть ссылка на представление va_list в ABI x86_64 (тот, который используется в Linux)? Я пытаюсь отладить некоторый код, где стек или аргументы кажутся поврежденными, и это действительно помогло бы понять, что я должен видеть...
16930 просмотров
schedule 07.05.2024

Вызов метода с использованием отражения/преобразования списка в Var Args
У меня есть список параметров и имя метода. Я хочу вызвать метод, используя отражение. Когда я проверил документ Java для Method.invoke, это похоже на Method.invoke(object o, Object args...) . Я знаю, что передать для первого параметра (т. е....
6865 просмотров

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

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

Использование var_arg для передачи параметров для вызовов функций
Я пишу адаптер для объединения двух API (один на C, а другой на C++). Если функция вызывается в одном API, мне нужно передать идентификатор вызывающего абонента и аргументы функции адаптеру и вызвать соответствующую функцию с этой переданной...
444 просмотров
schedule 17.03.2024

Шаблонная функция Variadic с аргументами одного типа
Как ограничить шаблонную функцию с переменным числом аргументов, чтобы все ее аргументы были одного типа? Мне нужно это для специализации CommonType!T either(T...)(T a) if (a.length >= 1) { static if (T.length == 1) return a[0];...
125 просмотров

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...) } Когда я запускаю это, я получаю...
5707 просмотров
schedule 03.05.2024

Написание вариативного макроса, который использует имена переданных аргументов
Я хочу написать вариативный макрос, который каким-то образом знает имена переданных аргументов. Например: Код: 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 просмотров

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

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

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

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

Как я могу сообщить о пользовательских ошибках, когда в вызове функции отсутствуют некоторые аргументы?
Я изучаю основы 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 (isempty(v))...
69 просмотров

почему метод varargs должен быть в отдельном блоке в java?
Почему метод varargs должен быть отделен от тела основного метода? Код ниже правильный, но почему я не могу поместить объявление метода varargs в тело основного метода? public class TryVariableArgumentList { public static void main(String[]...
79 просмотров
schedule 21.10.2022

сохранить список переменных аргументов для вызовов fprintf
Я пишу тяжелую многопоточную [> 170 потоков] программу С++ 11. Каждый поток записывает информацию в один файл, используемый всеми потоками. Из соображений производительности я хочу создать поток log , который записывает информацию через...
151 просмотров

С++ вызывает конструктор суперкласса с va_arg
У меня есть базовый класс, который включает в себя конструктор с переменным списком аргументов: class Super { public: Super(int num, ...); ... } Теперь в моем конструкторе подкласса мне нужно как-то вызвать этот конструктор суперкласса,...
797 просмотров
schedule 18.05.2024

Вараги Java не обнаруживают, когда вызывают метод 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

Функция Variadic append (добавление любого количества списков вместе)
Я пытаюсь реализовать схему процедуры append самостоятельно. Самая простая версия - добавить 2 списка вместе, это довольно просто и может быть сделано с помощью: (define (append lis1 lis2) (if (null? lis1)...
277 просмотров
schedule 10.04.2024

Передать объект С# [] методу Matlab Dll
Я пытаюсь передать массив объектов С# методу Matlab, используя ключевое слово массива параметров params . Мой метод Matlab соответствует сборке .net Dll. Вот мой простой метод С#: public void Method1(params object[] objArg) {...
1442 просмотров