Skip to main content

Questions tagged [variadic]

In computer science, an operator or function is variadic if it can take a varying number of arguments; that is, if its arity is not fixed.

Filter by
Sorted by
Tagged with
1 vote
1 answer
66 views

An Updated Multi-dimensional Image Data Structure with Variadic Template Functions in C++

This is a follow-up question for Multi-dimensional Image Data Structure with Variadic Template Functions in C++. Considering the suggestion from G. Sliepen: Make everything work for more than 5 ...
JimmyHu's user avatar
  • 4,748
5 votes
1 answer
275 views

Multi-dimensional Image Data Structure with Variadic Template Functions in C++

This is a follow-up question for Three dimensional data structure in C++. I am trying to implement multi-dimensional image data structure with variadic template functions. For example, ...
JimmyHu's user avatar
  • 4,748
1 vote
2 answers
285 views

Logger using variadic macros

I'm getting back into C and I wrote this variadic logger as part of a chess application I'm writing. As such I'm looking for feedback about the general approach (I'm going to give it another pass to ...
blinken_lx's user avatar
4 votes
2 answers
193 views

Transpose types variadicly

I want to do template metaprogramming to compute the conversion from std::variant<Ts...> to ...
Tom Huntington's user avatar
4 votes
1 answer
1k views

Template to unpack arguments to a std::function

I am writing some C++ code to interact with an external scripting language. I want to be able to register arbitrary C++ callable code as functions to be called from the script. The scripting library ...
David Woo's user avatar
  • 161
1 vote
2 answers
59 views

C++ variardic universal template for unknown types, used to handle multiple network protocols

I am creating a template function with variardic arguments, to handle a specific classes that have some interface, method, member or whatever is specialized in a specialization area. However I came to ...
Ilian Zapryanov's user avatar
2 votes
1 answer
449 views

splitting a tuple into N-element tuples

This nice hack should allow you to split a tuple into N-element tuples, thereby effectively splitting a tuple into pairs, triples, ... For example, this allows you to split an input parameter pack, ...
user1095108's user avatar
  • 1,434
5 votes
3 answers
116 views

C function that emulates string concatenation operator '+' in Python or Go

I'm working on a project of mine which required multiple calls to strncat(), and it came to me that it'd have been much easier if C also had something like ...
debdutdeb's user avatar
1 vote
1 answer
89 views

A Function Applier for Applying Various Algorithms on Nested Container Things in C++

This is a follow-up question for A recursive_replace_if Template Function Implementation in C++, A recursive_copy_if Template Function Implementation in C++, A recursive_count_if Function with Unwrap ...
JimmyHu's user avatar
  • 4,748
5 votes
1 answer
471 views

Using templates to wrap variardic JNI method calls into type-safe C++ functors

I am working on a project which uses JNI. More than once I fell over the absence of type safety working with the variardic function calls. So I came up with this module. It wraps the variardic JNI ...
Hermann's user avatar
  • 161
5 votes
1 answer
179 views

Meta functions for sequences of exponents of 2

I have implemented some meta functions to create sequence for exponents of 2. I would love to know if there is any way to make the code more optimized. Note: ...
starrk's user avatar
  • 369
1 vote
1 answer
271 views

Using vswprintf( ... ) to create wchar_t* with variable argument list

I am using c++17 and wide characters. I have created a function to create a wchar_t* using a variable number of parameters ... #include <stdarg.h> // the ...
FFMG's user avatar
  • 153
5 votes
1 answer
596 views

`zip` operator to iterate on multiple container in a sign

I worked out a zip operator similar to Python's, because I didn't find one in std. It allows to use range-based ...
mqtthiqs's user avatar
  • 153
1 vote
0 answers
132 views

Simplifying a packaged task for a threadpool implementation

I wrote a thread pool where the user can submit jobs through ThreadTask objects. These objects bundle the job priority, the task as a function, and some arbitrary ...
eclmist's user avatar
  • 119
7 votes
3 answers
761 views

Coalescing lvalue references to std-optionals

I want to coalesce (lvalue references to) optionals of the same type, in C++17: ...
einpoklum's user avatar
  • 2,015
9 votes
2 answers
9k views

`printf` improvement with C++ variadic templates

I am currently working through learning C++'s variadic templates and I wanted to create an example use of them that is less trivial than the one in my book. I decided to create a modification of ...
john01dav's user avatar
  • 421
5 votes
3 answers
988 views

Encapsulating snprintf to avoid repetition of sizeof

Correct usage of snprintf involves very long and repetitive lines: ...
alx - recommends codidact's user avatar
6 votes
1 answer
3k views

Max function with variable number of arguments

I find it irritating that in standard C++ I can't do std::max(a, b) = x when it's possible and that it can't handle more than 2 arguments. For the second concern I ...
Alexandru Ica's user avatar
3 votes
1 answer
174 views

Creating a cache-friendly component system

I am fairly new to c++ and am attempting to write a simple 2D game engine. I am currently working on my object model: a pure component system, similar to that described in the Data Locality chapter in ...
user8780062's user avatar
3 votes
0 answers
126 views

Racket macro for variadic FFI

I'm working on FFI wrapper for SDL2 library in Racket. The library includes several variadic functions (e.g. SDL_SetError, SDL_LogMessage etc); Racket FFI does not have straight way for importing ...
Andrew Kravchuk's user avatar
2 votes
1 answer
374 views

Replacing MIN and MAX macros with type-safe, recursive templates of variable arity

I'm currently reading Mastering Perl for Bioinformatics; I'm using the book for learning bioinformatics while implementing the code in C++. I came across a situation where I needed to use the minimum ...
Jose Fernando Lopez Fernandez's user avatar
19 votes
3 answers
3k views

Min function accepting varying number of arguments in C++17

Come across this problem once again in the book The Modern C++ Challenge. 18. Minimum function with any number of arguments Write a function template that can take any number of arguments and returns ...
Lingxi's user avatar
  • 818
4 votes
1 answer
288 views

Variadic Datablocks

I would like to have my variadic template class reviewed. First some explanation what it should do: I'm writing an application where I read in blocks of data. I know before i read in the data which ...
Sandro4912's user avatar
  • 3,076
5 votes
2 answers
505 views

C++ wrapper class to mimic a C array's brace initialization

I have an inheritance class that mimics the behavior of C style array's brace initialization by using a class template that has a variadic constructor but the template itself is not a variadic ...
Francis Cugler's user avatar
1 vote
1 answer
514 views

Variadic Functions in NASM Win64 Assembly

Simple variadic function implementation in NASM Assembly. When implemented like I have below: sum.asm ...
T145's user avatar
  • 3,099
4 votes
2 answers
175 views

Templated string formatting

This function formats a string by replacing every occurrence of '{n}' with the corresponding argument that was passed to the function where n is an index that ...
lelgetrekt's user avatar
8 votes
3 answers
3k views

The perfect function alias

For many years, I have waited for function aliases in C++. They still aren't here. I've been using macros to generate wrapper functions. This is my best attempt at the perfect function alias: ...
Indiana Kernick's user avatar
6 votes
2 answers
469 views

Small Formatting Library

I am learning C++ and currently playing with variadic template functions and formatting string, So here is my small attempt to write a formatting function and provide a simple iostream-like interface ...
bluedragon's user avatar
2 votes
1 answer
455 views

Extract from typelist by runtime value

I combined the ideas from this answer and a comment to this question to create a new instance of a type extracted from a type list. The index of the desired type within the type list is provided at ...
sigy's user avatar
  • 123
3 votes
1 answer
723 views

Variadic strcat for c++17

On some video from CPPcon, some one said that there should be variadic overload for operator+ as it can solve allocation when there are multiple ...
bluedragon's user avatar
14 votes
3 answers
10k views

Apply a function to each element of a tuple ("map" a tuple)

C++ doesn't (yet) have a 'map' higher-order function, certainly not one which applies to a compile-time sequence of values like a tuple. We have std::transform, and ...
einpoklum's user avatar
  • 2,015
6 votes
2 answers
716 views

Custom variadic min/max/sum functions

I have decided to write my own min max sum functions. I really don't like the ones provided ...
Ashock ev's user avatar
3 votes
1 answer
1k views

Alternative to integer_sequence trick

I hate working with std::integer_sequence. Each time I want to write a function foo I have to write an another function ...
tom's user avatar
  • 201
5 votes
1 answer
2k views

Generic message system using variadic templates

in my spare time I´m creating a hobby game engine as decided to write some of my systems on my own. As the time passes I´ve decided to start publishing it as a independent libraries for use (so ...
Pins's user avatar
  • 153
8 votes
3 answers
452 views

Generators and Distributions 2.0

In my original question: Generically encapsulating random generators and distributions into a class template I was given some excellent suggestions from two very informative users. I will give a basic ...
Francis Cugler's user avatar
4 votes
3 answers
463 views

Generically encapsulating random generators and distributions into a class template

I previously had a set of classes in one of my older libraries for working with the random number generators and distributions that was written when Visual Studio 2008 - 2010 were commonplace and ...
Francis Cugler's user avatar
7 votes
1 answer
188 views

Extending functions to tuples

Intro: Imagine you have defined addition on types A and B with function A add(A,A) and ...
tom's user avatar
  • 201
3 votes
0 answers
83 views

Determining if two packs are permutations of each other during compile-time

Often we need to find out if two tuples, or two packs in general, are the same as each other up to permutation. If there are no repeat types, then implementing ...
prestokeys's user avatar
  • 1,371
4 votes
1 answer
85 views

Class to unit-test functions, with rudimentary support for testing multi-parameter functions

Recently I read about test-driven-design and decided to try to create a simple unit testing class to begin using this approach. I have not been programming in Python for very long so forgive my ...
vampiire's user avatar
  • 143
9 votes
3 answers
4k views

Partial application in C++

Here is my code: ...
Cameron White's user avatar
0 votes
2 answers
3k views

Variadic template class that stores a vector of each type given [closed]

I'm exploring the possibility to generalise a class of mine that stores some entities. I like it to be able to keep entities of several type, given as template arguments. To explore the possibilities ...
dani's user avatar
  • 147
4 votes
2 answers
80 views

Header-only variadic console output and runtime input validation in C++ using templates

Template IO Module This is a single-file, header-only input validation with two variadic output functions. One output function simply inserts a new line char after every output and the other one ...
Jose Fernando Lopez Fernandez's user avatar
9 votes
1 answer
186 views

Rotate a given number of variables in-place

A very simple but useful algorithm: rotate the values of a given number of variables in-place to the left so that the first variable gets the value of the second, the second gets the value of the ...
Morwenn's user avatar
  • 20k
4 votes
1 answer
858 views

Implementing printf to a string by calling vsnprintf twice

I'm experimenting with writing a dynamic string library in C, and I decided to write an implementation of sprintf. In my code, I call vsnprintf with a buffer of 0 ...
ohnx's user avatar
  • 41
4 votes
1 answer
114 views

Sleeping and invoking a task in Python 2.X and Python 3.X

I'm writing a program that needs to be compatible for both Python 2.X and Python 3.X. My problem is that, because of the differences between these two versions, I'm duplicating code. ...
tulians's user avatar
  • 379
10 votes
1 answer
666 views

Variadic templated method to extract values from a table

Is this the correct, most sane way to do variadic templates in C++? All that this function does is to see if gate has a key, if it has, it adds it to a vector of values, if not, it default constructs ...
João Pires's user avatar
1 vote
0 answers
827 views

A homemade variadic map

A bit of background: some time ago I wrote a piece of code that can be used for memoization with functions taking one parameter. Now I want to extend this to deal with functions with arbitrary number ...
463035818_is_not_a_number's user avatar
1 vote
1 answer
1k views

Function with default parameters in any order

Intent Increase code usability/readability of functions with many default parameters while maintaining as much compile time safety as possible. Motivation It is very common to create functions that ...
Aaron Albers's user avatar
6 votes
2 answers
1k views

Typesafe scanf-like function with variadic templates

I'm hoping to get some feedback on a function with variadic templates that parses a format string and fills in some parameters whose order and types are based on the characters in the format string. ...
ptomato's user avatar
  • 161
4 votes
4 answers
3k views

A variadic C function for concatenating multiple strings

I have this function that takes a number \$N\$, and \$N\$ C strings, concatenates and returns the result: ...
coderodde's user avatar
  • 28.3k