Articles of variadic functions

Java dois varargs em um método

Existe alguma maneira em java, para criar um método, que está esperando duas varargs diferentes? Eu sei, com o mesmo tipo de object não é possível porque o compilador não sabe por onde começar ou terminar. Mas por que também não é possível com diferentes tipos de objects? Por exemplo: public void doSomething(String… s, int… […]

Por que o printf () promove um float para um double?

De uma pergunta anterior: Se você tentar passar um float para o printf , ele será promovido para o double antes que o printf receba printf() é uma function variadica, certo? Então, uma function variadica promove um argumento float para um double antes de passá-lo?

Qual é o propósito dos modificadores heh h para printf?

Além de %hn e %hhn (onde h ou hh especificam o tamanho do object apontado ), qual é o ponto dos modificadores hh h para especificadores de formato printf ? Devido às promoções padrão que são requeridas pela norma a serem aplicadas para funções variadicas, é impossível passar argumentos do tipo char ou short (ou […]

O printf (“% x”, 1) invoca um comportamento indefinido?

De acordo com o padrão C (6.5.2.2, parágrafo 6) Se a expressão que denota a function chamada tiver um tipo que não inclui um protótipo, as promoções de inteiros serão executadas em cada argumento e os argumentos que tiverem o tipo float serão promovidos para o dobro. Essas são chamadas de promoções de argumento padrão. […]

Como criar uma function haskell polyvariadic?

Eu preciso de uma function que leva um número arbitrário de argumentos (todos do mesmo tipo), faz algo com eles e depois retorna um resultado. Uma lista de argumentos é impraticável no meu caso específico. Ao examinar as haskell libs, vi que a function printf (do módulo Text.Printf ) usa um truque semelhante. Infelizmente, não […]

Poluição de heap potencial via parâmetro varargs

Eu entendo isso ocorre com o Java 7 ao usar varargs com um tipo genérico; Mas a minha pergunta é .. O que exatamente significa o Eclipse quando diz “seu uso poderia poluir o heap?” E Como a nova anotação do @SafeVarargs evita isso?

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 […]