diff options
Diffstat (limited to 'libcult/cult/cli/mapper.hxx.m4')
-rw-r--r-- | libcult/cult/cli/mapper.hxx.m4 | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/libcult/cult/cli/mapper.hxx.m4 b/libcult/cult/cli/mapper.hxx.m4 deleted file mode 100644 index 7ac6760..0000000 --- a/libcult/cult/cli/mapper.hxx.m4 +++ /dev/null @@ -1,65 +0,0 @@ -divert(-1) - -# file : cult/cli/mapper.hxx.m4 -# author : Boris Kolpackov <boris@kolpackov.net> -# copyright : Copyright (c) 2005-2010 Boris Kolpackov -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -define(`N', 100) - -define(`forloop', - `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')') - -define(`_forloop', - `$4`'ifelse($1, `$3', , - `define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')') - -define(`specialization',` -template -< -forloop(`i', 1, $1, ` char const* x`'i, typename Y`'i`'ifelse(i, $1, ,`,') -')dnl -> -struct Mapper -< -forloop(`i', 1, $1, ` x`'i, Y`'i, -')dnl -forloop(`i', $1, N, ` null, Null`'ifelse(i, N, ,`,') -')dnl -> -{ -`#ifdef __GNUC__' -forloop(`i', 1, $1, ` static Y`'i f (Tag<x`'i>*); -')dnl - - template <char const* x> - struct Selector - { - typedef typeof (Mapper::f ((Tag<x>*) (0))) Type; - }; -`#else' - template <char const* x> - struct Selector - { - typedef typename if_<same<x, x1>::r, Y1,ifelse($1, 1, ` Void', ` - typename Mapper - < -forloop(`i', 2, $1, ` x`'i, Y`'i`'ifelse(i, $1, ,`,') -') >::template Selector<x>::Type')>::Type Type; - }; -`#endif' -}; -') - -divert(0)dnl - -template -< -forloop(`i', 1, incr(N), - ` char const* x`'i`'ifelse(i, 1, ,`= null'), dnl -typename Y`'i`'ifelse(i, 1, ,`= Null')`'ifelse(i, incr(N), ,`,') -')dnl -> -struct Mapper; - -forloop(`n', 1, N, `specialization(n)') |