]> git.lyx.org Git - features.git/blobdiff - boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
boost: add eol property
[features.git] / boost / boost / mpl / aux_ / preprocessed / bcc_pre590 / vector.hpp
index e1f3c6295d9b881c8c1589ed4e30515a5e7ed709..803e217850a068fa3a6665dabd8996e0ec198b82 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 "vector.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 vector;\r
-\r
-template<\r
-     \r
-    >\r
-struct vector<\r
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector0<  >\r
-{\r
-    typedef vector0<  >::type type;\r
-};\r
-\r
-template<\r
-      typename T0\r
-    >\r
-struct vector<\r
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector1<T0>\r
-{\r
-    typedef typename vector1<T0>::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1\r
-    >\r
-struct vector<\r
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector2< T0,T1 >\r
-{\r
-    typedef typename vector2< T0,T1 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2\r
-    >\r
-struct vector<\r
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector3< T0,T1,T2 >\r
-{\r
-    typedef typename vector3< T0,T1,T2 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector4< T0,T1,T2,T3 >\r
-{\r
-    typedef typename vector4< T0,T1,T2,T3 >::type type;\r
-};\r
-\r
-template<\r
-      typename T0, typename T1, typename T2, typename T3, typename T4\r
-    >\r
-struct vector<\r
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector5< T0,T1,T2,T3,T4 >\r
-{\r
-    typedef typename vector5< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector6< T0,T1,T2,T3,T4,T5 >\r
-{\r
-    typedef typename vector6< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >\r
-{\r
-    typedef typename vector7< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
-{\r
-    typedef typename vector8< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
-{\r
-    typedef typename vector9< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
-{\r
-    typedef typename vector10< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
-        , na, na, na\r
-        >\r
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
-{\r
-    typedef typename vector11< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
-{\r
-    typedef typename vector12< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
-{\r
-    typedef typename vector13< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
-        , na, na, na, na\r
-        >\r
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
-{\r
-    typedef typename vector14< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
-        , na, na, na, na\r
-        >\r
-    : vector15<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        >\r
-{\r
-    typedef typename vector15< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, na, na, na, na\r
-        >\r
-    : vector16<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15\r
-        >\r
-{\r
-    typedef typename vector16< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, na, na, na\r
-        >\r
-    : vector17<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16\r
-        >\r
-{\r
-    typedef typename vector17< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, na, na\r
-        >\r
-    : vector18<\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 vector18< 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 vector<\r
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
-        , T15, T16, T17, T18, na\r
-        >\r
-    : vector19<\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 vector19< 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 vector\r
-    : vector20<\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 vector20< 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 "vector.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 vector;
+
+template<
+     
+    >
+struct vector<
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector0<  >
+{
+    typedef vector0<  >::type type;
+};
+
+template<
+      typename T0
+    >
+struct vector<
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector1<T0>
+{
+    typedef typename vector1<T0>::type type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct vector<
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector2< T0,T1 >
+{
+    typedef typename vector2< T0,T1 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct vector<
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector3< T0,T1,T2 >
+{
+    typedef typename vector3< T0,T1,T2 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct vector<
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector4< T0,T1,T2,T3 >
+{
+    typedef typename vector4< T0,T1,T2,T3 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct vector<
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector5< T0,T1,T2,T3,T4 >
+{
+    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector6< T0,T1,T2,T3,T4,T5 >
+{
+    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct vector<
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector7< T0,T1,T2,T3,T4,T5,T6 >
+{
+    typedef typename vector7< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
+{
+    typedef typename vector8< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
+{
+    typedef typename vector9< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+{
+    typedef typename vector10< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
+        , na, na, na
+        >
+    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+{
+    typedef typename vector11< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
+        , na, na, na, na
+        >
+    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+{
+    typedef typename vector12< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
+        , na, na, na, na
+        >
+    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+{
+    typedef typename vector13< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
+        , na, na, na, na
+        >
+    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+{
+    typedef typename vector14< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
+        , na, na, na, na
+        >
+    : vector15<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        >
+{
+    typedef typename vector15< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, na, na, na, na
+        >
+    : vector16<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15
+        >
+{
+    typedef typename vector16< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, na, na, na
+        >
+    : vector17<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16
+        >
+{
+    typedef typename vector17< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, na, na
+        >
+    : vector18<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17
+        >
+{
+    typedef typename vector18< 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 vector<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, na
+        >
+    : vector19<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18
+        >
+{
+    typedef typename vector19< 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 vector
+    : vector20<
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
+        , T15, T16, T17, T18, T19
+        >
+{
+    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
+};
+
+}}
+