
On 04/15/12 14:06, Larry Evans wrote:
On 04/15/12 08:02, paul Fultz wrote:
----- Original Message -----
From: Mathias Gaunard <mathias.gaunard@ens-lyon.org>
[snip]
Did you find a magic way to make a switch statement from a template parameter pack?
Well you can expand the parameter pack to create a static array of function pointers. This is how it is done in this implementation:
http://thenewcpp.wordpress.com/2012/02/15/variadic-templates-part-3-or-how-i...
[snip]
IIUC, something similar was proposed earlier; however, a preprocessor generated switch statement was deemed faster:
http://article.gmane.org/gmane.comp.lib.boost.devel/169739
However, maybe compiler's have improved since then.
Looking closer, I see that the gmane.comp.lib.boost.devel/169739 code did not use parameter pack expansion because it didn't use variadic templates; however, it did use a vector of function pointers. Also, apparently the switch library has an alternative implementation which does something similar here: http://svn.boost.org/svn/boost/sandbox/switch/libs/switch/alternate/switch/s... There's also, apparently, a test driver to compare the speed of alternative implementations here: http://svn.boost.org/svn/boost/sandbox/switch/libs/switch/alternate/switch/t... -regards, Larry