]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/qvm/deduce_mat.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / qvm / deduce_mat.hpp
index e2fb7a2127b68d789282b37ec9223f5360e1ae08..c9b3ca3e00d69623e4d7647f000c31d83c35169e 100644 (file)
@@ -1,90 +1,90 @@
-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_C5DC682E196211E0A4C1686BDFD72085\r
-#define UUID_C5DC682E196211E0A4C1686BDFD72085\r
-\r
-#include <boost/qvm/deduce_scalar.hpp>\r
-#include <boost/qvm/mat_traits.hpp>\r
-#include <boost/qvm/static_assert.hpp>\r
-\r
-namespace\r
-boost\r
-    {\r
-    namespace\r
-    qvm\r
-        {\r
-        template <class T,int Rows,int Cols>\r
-        struct mat;\r
-\r
-        namespace\r
-        qvm_detail\r
-            {\r
-            template <class M,int R,int C,\r
-                int MR=mat_traits<M>::rows,\r
-                int MC=mat_traits<M>::cols>\r
-            struct\r
-            deduce_mat_default\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(is_mat<M>::value);\r
-                typedef mat<typename mat_traits<M>::scalar_type,R,C> type;\r
-                };\r
-\r
-            template <class M,int R,int C>\r
-            struct\r
-            deduce_mat_default<M,R,C,R,C>\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(is_mat<M>::value);\r
-                typedef M type;\r
-                };\r
-            }\r
-\r
-        template <class Type,int Rows=mat_traits<Type>::rows,int Cols=mat_traits<Type>::cols>\r
-        struct\r
-        deduce_mat\r
-            {\r
-            BOOST_QVM_STATIC_ASSERT(is_mat<Type>::value);\r
-            typedef typename qvm_detail::deduce_mat_default<Type,Rows,Cols>::type type;\r
-            };\r
-\r
-        namespace\r
-        qvm_detail\r
-            {\r
-            template <class A,class B,int R,int C,\r
-                bool VA=is_mat<A>::value,\r
-                bool VB=is_mat<B>::value,\r
-                int AR=mat_traits<A>::rows,\r
-                int AC=mat_traits<A>::cols,\r
-                int BR=mat_traits<B>::rows,\r
-                int BC=mat_traits<B>::cols>\r
-            struct\r
-            deduce_m2_default\r
-                {\r
-                typedef mat<\r
-                    typename deduce_scalar<\r
-                        typename scalar<A>::type,\r
-                        typename scalar<B>::type>::type,\r
-                    R,C> type;\r
-                };\r
-\r
-            template <class M,int R,int C>\r
-            struct\r
-            deduce_m2_default<M,M,R,C,true,true,R,C,R,C>\r
-                {\r
-                typedef M type;\r
-                };\r
-            }\r
-\r
-        template <class A,class B,int R,int C>\r
-        struct\r
-        deduce_mat2\r
-            {\r
-            BOOST_QVM_STATIC_ASSERT(is_mat<A>::value || is_mat<B>::value);\r
-            typedef typename qvm_detail::deduce_m2_default<A,B,R,C>::type type;\r
-            };\r
-        }\r
-    }\r
-\r
-#endif\r
+//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+
+//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)
+
+#ifndef UUID_C5DC682E196211E0A4C1686BDFD72085
+#define UUID_C5DC682E196211E0A4C1686BDFD72085
+
+#include <boost/qvm/deduce_scalar.hpp>
+#include <boost/qvm/mat_traits.hpp>
+#include <boost/qvm/static_assert.hpp>
+
+namespace
+boost
+    {
+    namespace
+    qvm
+        {
+        template <class T,int Rows,int Cols>
+        struct mat;
+
+        namespace
+        qvm_detail
+            {
+            template <class M,int R,int C,
+                int MR=mat_traits<M>::rows,
+                int MC=mat_traits<M>::cols>
+            struct
+            deduce_mat_default
+                {
+                BOOST_QVM_STATIC_ASSERT(is_mat<M>::value);
+                typedef mat<typename mat_traits<M>::scalar_type,R,C> type;
+                };
+
+            template <class M,int R,int C>
+            struct
+            deduce_mat_default<M,R,C,R,C>
+                {
+                BOOST_QVM_STATIC_ASSERT(is_mat<M>::value);
+                typedef M type;
+                };
+            }
+
+        template <class Type,int Rows=mat_traits<Type>::rows,int Cols=mat_traits<Type>::cols>
+        struct
+        deduce_mat
+            {
+            BOOST_QVM_STATIC_ASSERT(is_mat<Type>::value);
+            typedef typename qvm_detail::deduce_mat_default<Type,Rows,Cols>::type type;
+            };
+
+        namespace
+        qvm_detail
+            {
+            template <class A,class B,int R,int C,
+                bool VA=is_mat<A>::value,
+                bool VB=is_mat<B>::value,
+                int AR=mat_traits<A>::rows,
+                int AC=mat_traits<A>::cols,
+                int BR=mat_traits<B>::rows,
+                int BC=mat_traits<B>::cols>
+            struct
+            deduce_m2_default
+                {
+                typedef mat<
+                    typename deduce_scalar<
+                        typename scalar<A>::type,
+                        typename scalar<B>::type>::type,
+                    R,C> type;
+                };
+
+            template <class M,int R,int C>
+            struct
+            deduce_m2_default<M,M,R,C,true,true,R,C,R,C>
+                {
+                typedef M type;
+                };
+            }
+
+        template <class A,class B,int R,int C>
+        struct
+        deduce_mat2
+            {
+            BOOST_QVM_STATIC_ASSERT(is_mat<A>::value || is_mat<B>::value);
+            typedef typename qvm_detail::deduce_m2_default<A,B,R,C>::type type;
+            };
+        }
+    }
+
+#endif