Questions tagged [template-meta-programming]

For code that uses templates to generate compile-time executed code. For ordinary use of templates, use the 'template' tag instead.

Filter by
Sorted by
Tagged with
3 votes
1 answer
79 views

(C++) Template code for adding tagging types to add additional context

Below is a piece of template code which allows for adding a Tag to structure or class types. ...
Sam Coutteau's user avatar
3 votes
1 answer
91 views

C++ printing library with templates

I was mad C++ did not have support for printing containers. I also could not find a header only library for printing containers so I decided to make my own. My goals were: 1) practicing templates 2) ...
Doruk's user avatar
  • 331
3 votes
1 answer
118 views

Partial specialization of class template with minimal code duplication

I have a class template that stores an std::optional<T>. A very reduced version of the class template looks like this: ...
joergbrech's user avatar
1 vote
1 answer
113 views

Template for making distinct numeric type aliases

I've tried to make a small template for the creation of distinct (incompatible) numerical types. For example both row and column indices are usually represented as the same underlying type. However it ...
Sam Coutteau's user avatar
3 votes
1 answer
880 views

C++ enum to string conversion utility

I needed to find a way to convert a bunch of enums to string for displaying in C++. The two main ways I found when searching was using dark magic macros or voodoo magic template metaprogramming. As I ...
adepierre's user avatar
4 votes
0 answers
49 views

Variadic pack class providing operations over types without constructing objects of those types

Sometimes I find I want to call a function passing each of a set of types as a template parameter, but without needing to construct an object of those types. I also may want to do this in multiple ...
John Ilacqua's user avatar
4 votes
2 answers
176 views

Transpose types variadicly

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

scoped timer class (3rd revision)

Again, here is the previous question. I have (re)revised my custom scoped timer using the valuable feedback I got from a helpful member of this community. However I feel the need to ask this question ...
digito_evo's user avatar
-2 votes
2 answers
75 views

Is there a more elegant solution to store and process different types using templates? [closed]

I'm trying to create some system for profiling and I need to track different data types (double, float int). I have a container that can hold some base type, and then perform actions on the concrete ...
kbz's user avatar
  • 99
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
3 votes
1 answer
451 views

C++: Visit Any Type Holding Other Types (`std::any`, `std::variant`, etc.)

Intro I want to visit the value held by a class, which could be of multiple types. This class is very similar to a std::any, so I will be using this in this ...
mfacchinelli's user avatar
2 votes
1 answer
186 views

C++17 view over the Ith elements of tuples in containers of tuples

For mainly didactic reasons, I have designed my ElementsView<I, T> class template, which provides a view over the I th ...
joao's user avatar
  • 123
1 vote
2 answers
58 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
3 votes
1 answer
1k views

visit for std::any

While solving an online excersise I have written some basic implementation for a visit function that works with std::any. The ...
Sergey Kolesnik's user avatar
2 votes
1 answer
600 views

Binding move-only objects to functions (for a thread pool implementation)

I recently implemented a thread pool using std::functions. I only supported functions taking no arguments on the assumption that there would be no need to have them ...
jezza's user avatar
  • 205
3 votes
1 answer
2k views

Mapping between Enum <-> Enum <-> String view

I've been working on some kind of mapper that would allow me to map between types. My objectives: it should allow mapping between two enums it should allow mapping enum to string_view it should allow ...
bielu000's user avatar
  • 241
2 votes
1 answer
311 views

An rough implementation of `std::is_constructible`

As a challenge/fun activity/task, I have implemented my version of std::is_constructible. Here is the source code: ...
Mansoor Ahmed Memon's user avatar
2 votes
1 answer
271 views

Implementation of versatile IIR digital filter in C++

I have realized that all the digital filters of the IIR type have the same structure. They are described by difference equation in following form: $$ y(k) = b_0\cdot x(k) + b_1\cdot x(k-1) + \ldots +...
Steve's user avatar
  • 355
2 votes
0 answers
156 views

invocable_traits v5

Goal: implement traits that for anything callable return its arity, return type and the argument types. Since pointers to data members are also callable, those should be handled (and be considered 0-...
Diederick C. Niehorster's user avatar
1 vote
1 answer
157 views

invocable_traits v4

Update: there is a new version of this code: v5 is posted here Goal: implement traits that for anything callable return its arity, return type and the argument types. Since pointers to data members ...
Diederick C. Niehorster's user avatar
3 votes
0 answers
54 views

invocable_traits v3

Update: there is a new version of this code: v4 is posted here Goal: implement traits that for anything callable return its arity, return type and the argument types. Since pointers to data members ...
Diederick C. Niehorster's user avatar
3 votes
1 answer
64 views

invocable_traits

Update: there are new versions of this code: v3 is posted here and v4 is posted here Goal: implement traits that for anything callable return its arity, return type and the argument types. Since ...
Diederick C. Niehorster's user avatar
4 votes
1 answer
889 views

c++20 compile time string utility v2

This is a follow up on c++20 compile time string utility, as suggested by G. Sliepen posted as a new question, so it can be reviewed on its own. The following code has suggested improvements from the ...
Dmitrii's user avatar
  • 95
5 votes
2 answers
4k views

c++20 compile time string utility

While upgrading some meta-program running in production for years to the latest (c++20) standard, I rewrote this particular compile time string utility. Even though this new version produces desired ...
Dmitrii's user avatar
  • 95
1 vote
2 answers
740 views

Automatically registering a class using header-only templated classes

I'm trying to reduce the boilerplate of a lot of header-only classes I'm using. Each of these classes must go through a registration step. I want this step to be defined in the same file as the class ...
Delgan's user avatar
  • 551
1 vote
1 answer
105 views

One-time dynamic, many-time *almost* static type dispatch

Annoyed at the tension between good software design principles that require well-defined delimitations between interface and implementations, and the requirements for critical code to run fast, which ...
lurscher's user avatar
  • 141
9 votes
3 answers
4k views

C++17 : Typelist manipulation

I'm reading "Modern C++ Design"(A. Alexandrescu, 2002) and practicing basic TMP in chapter 3. Typelists. Since the book is quite dated, I revised example codes in C++17-esque manner. Feel ...
frozenca's user avatar
  • 1,703
1 vote
1 answer
866 views

template function for conditional dereference

I don't know why there's no such function in std (at least I didn't find one). I need a conditional template function to return a reference to an object of T. ...
Sergey Kolesnik's user avatar
3 votes
1 answer
1k views

Object to ignore unused function output parameters

In our software we have some functions that return information through lvalue reference parameters, which, in some cases, are irrelevant for the calling code. For that reason, I tried to come up with ...
Matthias Grün's user avatar
1 vote
1 answer
312 views

Handle C++ templates in Qt5

Searching for a solution to my problem I've read many posts regarding templates in Qt (including those on SE) and didn't find a complete solution (or I should say a complete example of a solution) so ...
LRDPRDX's user avatar
  • 831
6 votes
1 answer
540 views

Implementing apply_each for tuple c++

I'm implementing apply_each for tuple-like object as a general function which may be a combined version of for_each and ...
Desmond Gold's user avatar
2 votes
1 answer
238 views

Creating a structural type array wrapper to be qualified as non-type template parameter C++

I'm trying to replicate std::array but with modifications that I should put the private data member to the public so the class template ...
Desmond Gold's user avatar
2 votes
1 answer
100 views

Computing nth Tribonacci number at compile time using C++ template metaprogramming facilities

I have this small C++ program for computing the \$n\$th Tribonacci number at compile-time. My main concern is: is it possible to get rid of the statickeyword (I had ...
coderodde's user avatar
  • 27.7k
1 vote
1 answer
827 views

A multi key/value type "folded" map class template

I have recently come across a use case where I need to lump many maps into a single container. These maps can have different combinations of key/value types, but they all differ from one another. For ...
Emerald Weapon's user avatar
4 votes
3 answers
3k views

De-/Serialization of structs representing TCP messages

I wrote two template functions to serialize and deserialize structs representing messages to be sent and received via a TCP socket: ...
Richard Neumann's user avatar
2 votes
0 answers
202 views

Generic way to access private/protected members

Motivation I and the company is working on building C++ SDK automatically for several platforms, including Windows. In summary, I have to test somehow if the private member of function pointers' type ...
김선달's user avatar
  • 121
7 votes
3 answers
2k views

C++ Generic Callback class with removable listeners by unique id

I'm quite new to the STL. Does this make sense? Is there a better way of removing the listeners instead of using shared_ptr while keeping the code short and simple? Is there something in the STL to ...
fededevi's user avatar
  • 310
3 votes
1 answer
210 views

Implementation of the basic matrix operations for embedded application in C++

I have been developing a control software in C++ and for implementation of the control algorithms I need basic matrix operations like addition, subtraction, multiplication and multiplication by scalar....
L3sek's user avatar
  • 385
1 vote
0 answers
192 views

"tuple with named fields" implementation

I'd like to show you a type I made while experimenting with literal, non-type template parameters in C++20. The idea is to provide a type that wraps up tuple-like types (std::tuple, std::pair, even ...
Fabio A.'s user avatar
  • 261
2 votes
1 answer
1k views

C++ generic, multi-dimensional linear interpolation template

Use-case in a nutshell: Interpolate fixed-sized data (a lookup table) that provides output values for combinations of a (fixed) number of inputs. The appropriate scaling is done externally, each axis ...
Stefan's user avatar
  • 813
5 votes
1 answer
628 views

Binary IO inspired by struct pack

About I'm writing a header-only template library for helping with binary IO. It is inspired by pack-d, which is in turn inspired by Python's struct module. I've only finished the output part and ...
Luka Aleksić's user avatar
1 vote
0 answers
220 views

Making std::optional a monad via SFINAE

To practice with SFINAE, template meta programming, functional programming and monads in C++, I decided to try writing a skinny version of the two functions (monadic binding and return) that make <...
Enlico's user avatar
  • 547
4 votes
3 answers
425 views

Calculate the centroid of a collection of complex numbers

In working on another problem, one component I needed was to calculate the centroid of a collection of complex objects. The well-known way to calculate this is to simply average the real and ...
Edward's user avatar
  • 66.4k
0 votes
2 answers
4k views

struct,template arguments, C++ [closed]

I am writing color model logic in C++. I ask review in defining limits for the color model, by saying Limits I mean this. Consider a struct which represents ...
Hrant Nurijanyan's user avatar
5 votes
1 answer
460 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
2 votes
1 answer
56 views

Colour-model classes using CRTP

I want to implement color space logic. So I started with creating some structs: ...
Hrant Nurijanyan's user avatar
7 votes
1 answer
452 views

Generic test case templates

I often find that when I am writing, refactoring, or reviewing code that I want to do some simple testing. There are many existing test frameworks such as gtest and cppunit but my desire was to ...
Edward's user avatar
  • 66.4k
4 votes
1 answer
361 views

Template Metaprogramming and Modular Arithmetic

Story I'm trying to become more familiar with template metaprogramming and practice more of it. I need to use modular arithmetic to solve certain problems and so I decided to write a general purpose ...
Arrow's user avatar
  • 224
5 votes
1 answer
125 views

Compiletime (constexpr) Differential Equation System Description for use in Optimal Control

Background In the field of optimal control, it is part of everyday business to solve ordinary differential equations numerically. A differential equation system or dynamic system describes e.g. the ...
ab.o2c's user avatar
  • 306
4 votes
1 answer
652 views

Template Metaprogramming - Multidimensional Vector Declaration

[EDIT] The question has been edited. Please make sure to read the summary at the end of the post. If you'd like me to make a new post with a cleaner explanation and better examples, tell me to do so ...
Arrow's user avatar
  • 224

1
2 3 4 5 6