I was watching a C++11/14 metaprogramming talk, where some efficient alternatives for common algorithms and tmp patterns are described.
Most of that efficiency gains come from using variadic templates instead of recursive traversal, and in many cases the way to use variadic templates was to expand a variadic pack generated via the indices trick or other std::integer_sequence
instantation tricks.
Since that efficiency comes from the fact that instancing a std::integer_sequence
, and specifically the alias std::make_integer_sequence
is not an expensive task, I want to be sure that the current state-of-the art implementation of C++1y Standard Library is efficient enough to make make_integer_sequence
instantations not a complex and time/memory consuming task.
How exactly std::make_integer_sequence
is actually implemented in C++1y-ready compilers?
Note that I'm not asking how to implement it efficiently, but how compiler vendors actually decided to implement it.
The only implementations of make_sequence
I'm aware of are the simple O(n) recursive approach and the clever O(logN) divide and conquer one.
size_t
?) if it does not go belly up first. – Putdownc++1y
tags toc++14
? – Illaffected