Articles of variadic functions

bug com varargs e sobrecarga?

Parece haver um bug na implementação do Java varargs. Java não consegue distinguir o tipo apropriado quando um método é sobrecarregado com diferentes tipos de parâmetros vararg. Isso me dá um erro The method … is ambiguous for the type … Considere o seguinte código: public class Test { public static void main(String[] args) throws […]

Como passar um número variável de argumentos para printf / sprintf

Eu tenho uma class que contém uma function de “erro” que irá formatar algum texto. Eu quero aceitar um número variável de argumentos e formatá-los usando printf. Exemplo: class MyClass { public: void Error(const char* format, …); }; O método Error deve receber os parâmetros, chamar printf / sprintf para formatá-lo e, em seguida, fazer […]

tipo de retorno à direita usando decltype com uma function de modelo variadic

Eu quero escrever um sumdor simples (para risos) que adiciona todos os argumentos e retorna uma sum com o tipo apropriado. Atualmente, tenho isto: #include using namespace std; template T sum(const T& in) { return in; } template auto sum(const T& t, const P&… p) -> decltype(t + sum(p…)) { return t + sum(p…); } […]

Como posso converter o object “arguments” em um array em JavaScript?

O object arguments em JavaScript é uma verruga ímpar – ele age exatamente como um array na maioria das situações, mas na verdade não é um object de matriz. Como é realmente algo totalmente diferente , ele não tem as funções úteis do Array.prototype como forEach , sort , filter e map . É trivialmente […]

Por que usar a palavra-chave params?

Eu sei que esta é uma questão básica, mas não consegui encontrar uma resposta. Por que usar isso? se você escrever uma function ou um método que a esteja usando, quando você a remover, o código ainda funcionará perfeitamente, 100% sem ele. Por exemplo: Com params: static public int addTwoEach(params int[] args) { int sum […]

É possível enviar um número variável de argumentos para uma function JavaScript?

É possível enviar um número variável de argumentos para uma function JavaScript, a partir de uma matriz? var arr = [‘a’,’b’,’c’] var func = function() { // debug alert(arguments.length); // for(arg in arguments) alert(arg); } func(‘a’,’b’,’c’,’d’); // prints 4 which is what I want, then ‘a’,’b’,’c’,’d’ func(arr); // prints 1, then ‘Array’ Eu escrevi recentemente […]

Posso passar uma matriz como argumentos para um método com argumentos variables ​​em Java?

Eu gostaria de poder criar uma function como: class A { private String extraVar; public String myFormat(String format, Object … args){ return String.format(format, extraVar, args); } } O problema aqui é que args é tratado como Object[] no método myFormat e, portanto, é um único argumento para String.format , enquanto eu gostaria que cada Object […]

Passando número variável de argumentos ao redor

Digamos que eu tenha uma function C que tenha um número variável de argumentos: Como posso chamar outra function que espera um número variável de argumentos dentro dela, passando todos os argumentos que entraram na primeira function? Exemplo: void format_string(char *fmt, …); void debug_print(int dbg_lvl, char *fmt, …) { format_string(fmt, /* how do I pass […]

Quando você usa varargs em Java?

Eu tenho medo de varargs. Eu não sei o que usá-los para. Além disso, parece perigoso deixar as pessoas passarem tantos argumentos quanto quiserem. Qual é o exemplo de um contexto que seria um bom lugar para usá-los?

Arrays.asList () não está funcionando como deveria?

Eu tenho um float [] e gostaria de obter uma lista com os mesmos elementos. Eu poderia fazer a coisa feia de adicioná-los um por um, mas eu queria usar o método Arrays.asList. Há um problema, no entanto. Isso funciona: List list = Arrays.asList(1,2,3,4,5); Mas isso não acontece. int[] ints = new int[] {1,2,3,4,5}; List […]