I'm trying to implement a fast function dispatcher using compile time generated arrays to being able to use it at runtime in O(1).
Say I have two classes:What I'm trying to do is to write a constructor for PixelContainer such that: It would instantiate correctly for the following cases (example, not exhaustive):
I'm not sure that this is possible, but say I have:using my_variant = std::variant<Class1, Class2, Class3>;
Say I have a class of three template type parameters.And have the following classes to be used later in instantiating ConfiguredPipeline:
I've experimenting with C++17 lately and found this:Trying to call recurse<4>(); will lead tofatal error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum) return recurse<i - 1>();
The following definition has proven to be very useful for me:Basically, the arguments pack folded on comma operator, allows to define several calls to a function taking an argument. For example:
I've seen this expression in a library implementation and I basically understand it is been used to foster SFINAE or even to pull the static_assert trigger.