Вопросы по теме '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 просмотров
schedule
17.05.2024
указатель на 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 просмотров
schedule
18.04.2024
Использование 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 просмотров
schedule
17.09.2022
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 просмотров
schedule
17.12.2023
Как я могу гарантировать типобезопасность аргументов с переменным числом аргументов?
В 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 просмотров
schedule
13.12.2023
С++ объединяет значения из двух (или более) пакетов параметров
Как можно объединить значения из двух пакетов параметров в C++? Другими словами, как написать функцию
LetsStart<int, -1, 10, 3>("This is -1", "And this is 10", "3!!!");
который будет выводить
-1 This is -1...
2301 просмотров
schedule
23.01.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 (isempty(v))...
69 просмотров
schedule
24.03.2024
почему метод varargs должен быть в отдельном блоке в java?
Почему метод varargs должен быть отделен от тела основного метода? Код ниже правильный, но почему я не могу поместить объявление метода varargs в тело основного метода?
public class TryVariableArgumentList {
public static void main(String[]...
79 просмотров
schedule
21.10.2022
сохранить список переменных аргументов для вызовов fprintf
Я пишу тяжелую многопоточную [> 170 потоков] программу С++ 11. Каждый поток записывает информацию в один файл, используемый всеми потоками. Из соображений производительности я хочу создать поток log , который записывает информацию через...
151 просмотров
schedule
28.03.2024
С++ вызывает конструктор суперкласса с 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 просмотров
schedule
13.12.2023