]> git.lyx.org Git - features.git/blobdiff - boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
boost: add eol property
[features.git] / boost / boost / mpl / aux_ / preprocessed / bcc_pre590 / set.hpp
index 089ce0b74b4da55c5b1d155827a1830057ae373b..ace3a4f07cbfbc6acb92059dc44f65380f1c5bb6 100644 (file)
-\r
-// Copyright Aleksey Gurtovoy 2000-2004\r
-//\r
-// Distributed under the Boost Software License, Version 1.0. \r
-// (See accompanying file LICENSE_1_0.txt or copy at \r
-// http://www.boost.org/LICENSE_1_0.txt)\r
-//\r
-\r
-// *Preprocessed* version of the main "set.hpp" header\r
-// -- DO NOT modify by hand!\r
-\r
-namespace boost { namespace mpl {\r
-\r
-template<\r
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
-    , typename T12 = na, typename T13 = na, typename T14 = na\r
-    , typename T15 = na, typename T16 = na, typename T17 = na\r
-    , typename T18 = na, typename T19 = na\r
-    >\r
-struct set;\r
-\r
-template<\r
-     \r
-    >\r
-struct set<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set0<  >\r
-{\r
-    typedef set0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct set<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set1<T0>\r
-{\r
-    typedef typename set1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct set<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set2< T0,T1 >\r
-{\r
-    typedef typename set2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct set<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set3< T0,T1,T2 >\r
-{\r
-    typedef typename set3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename set4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : set15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : set16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : set17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : set18<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17\r
-        >\r
-{\r
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18\r
-    >\r
-struct set<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : set19<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18\r
-        >\r
-{\r
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
-};\r
-\r
-/// primary template (not a specialization!)\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    , typename T5, typename T6, typename T7, typename T8, typename T9\r
-    , typename T10, typename T11, typename T12, typename T13, typename T14\r
-    , typename T15, typename T16, typename T17, typename T18, typename T19\r
-    >\r
-struct set\r
-    : set20<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, T19\r
-        >\r
-{\r
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
-};\r
-\r
-}}\r
-\r
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// *Preprocessed* version of the main "set.hpp" header
+// -- DO NOT modify by hand!
+
+namespace boost { namespace mpl {
+
+template<
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
+    , typename T12 = na, typename T13 = na, typename T14 = na
+    , typename T15 = na, typename T16 = na, typename T17 = na
+    , typename T18 = na, typename T19 = na
+    >
+struct set;
+
+template<
+     
+    >
+struct set<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set0<  >
+{
+    typedef set0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct set<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set1<T0>
+{
+    typedef typename set1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct set<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set2< T0,T1 >
+{
+    typedef typename set2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct set<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set3< T0,T1,T2 >
+{
+    typedef typename set3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct set<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set4< T0,T1,T2,T3 >
+{
+    typedef typename set4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct set<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set5< T0,T1,T2,T3,T4 >
+{
+    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : set15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : set16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : set17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : set18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct set<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : set19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
+};
+
+/// primary template (not a specialization!)
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct set
+    : set20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+