]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/qvm/quat_traits_array.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / qvm / quat_traits_array.hpp
index f3b13d2dd56bddc22241c1aa72f2f5f58e23744f..d54d17b33e6656acab9f87917bcfac97836158bb 100644 (file)
-//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_6D6B1EE2119A11E291554FEE6188709B\r
-#define UUID_6D6B1EE2119A11E291554FEE6188709B\r
-\r
-#include <boost/qvm/inline.hpp>\r
-#include <boost/qvm/deduce_quat.hpp>\r
-#include <boost/qvm/detail/remove_const.hpp>\r
-#include <boost/qvm/assert.hpp>\r
-\r
-namespace\r
-boost\r
-    {\r
-    namespace\r
-    qvm\r
-        {\r
-        template <class T,int D>\r
-        struct\r
-        quat_traits<T[D]>\r
-            {\r
-            typedef void scalar_type;\r
-            };\r
-        template <class T,int D>\r
-        struct\r
-        quat_traits<T[D][4]>\r
-            {\r
-            typedef void scalar_type;\r
-            };\r
-        template <class T,int D>\r
-        struct\r
-        quat_traits<T[4][D]>\r
-            {\r
-            typedef void scalar_type;\r
-            };\r
-        template <class T>\r
-        struct\r
-        quat_traits<T[4][4]>\r
-            {\r
-            typedef void scalar_type;\r
-            };\r
-        template <class T,int M,int N>\r
-        struct\r
-        quat_traits<T[M][N]>\r
-            {\r
-            typedef void scalar_type;\r
-            };\r
-\r
-        template <class T>\r
-        struct\r
-        quat_traits<T[4]>\r
-            {\r
-            typedef T this_quaternion[4];\r
-            typedef typename qvm_detail::remove_const<T>::type scalar_type;\r
-\r
-            template <int I>\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type\r
-            read_element( this_quaternion const & x )\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(I>=0);\r
-                BOOST_QVM_STATIC_ASSERT(I<4);\r
-                return x[I];\r
-                }\r
-\r
-            template <int I>\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type &\r
-            write_element( this_quaternion & x )\r
-                {\r
-                BOOST_QVM_STATIC_ASSERT(I>=0);\r
-                BOOST_QVM_STATIC_ASSERT(I<4);\r
-                return x[I];\r
-                }\r
-\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type\r
-            read_element_idx( int i, this_quaternion const & x )\r
-                {\r
-                BOOST_QVM_ASSERT(i>=0);\r
-                BOOST_QVM_ASSERT(i<4);\r
-                return x[i];\r
-                }\r
-\r
-            static\r
-            BOOST_QVM_INLINE_CRITICAL\r
-            scalar_type &\r
-            write_element_idx( int i, this_quaternion & x )\r
-                {\r
-                BOOST_QVM_ASSERT(i>=0);\r
-                BOOST_QVM_ASSERT(i<4);\r
-                return x[i];\r
-                }\r
-            };\r
-\r
-        template <class T>\r
-        struct\r
-        deduce_quat<T[4]>\r
-            {\r
-            typedef quat<T> type;\r
-            };\r
-\r
-        template <class T>\r
-        struct\r
-        deduce_quat<T const[4]>\r
-            {\r
-            typedef quat<T> type;\r
-            };\r
-\r
-        template <class T1,class T2>\r
-        struct\r
-        deduce_quat2<T1[4],T2[4]>\r
-            {\r
-            typedef quat<typename deduce_scalar<T1,T2>::type> type;\r
-            };\r
-\r
-        template <class T>\r
-        T (&ptr_qref( T * ptr ))[4]\r
-            {\r
-            return *reinterpret_cast<T (*)[4]>(ptr);\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_6D6B1EE2119A11E291554FEE6188709B
+#define UUID_6D6B1EE2119A11E291554FEE6188709B
+
+#include <boost/qvm/inline.hpp>
+#include <boost/qvm/deduce_quat.hpp>
+#include <boost/qvm/detail/remove_const.hpp>
+#include <boost/qvm/assert.hpp>
+
+namespace
+boost
+    {
+    namespace
+    qvm
+        {
+        template <class T,int D>
+        struct
+        quat_traits<T[D]>
+            {
+            typedef void scalar_type;
+            };
+        template <class T,int D>
+        struct
+        quat_traits<T[D][4]>
+            {
+            typedef void scalar_type;
+            };
+        template <class T,int D>
+        struct
+        quat_traits<T[4][D]>
+            {
+            typedef void scalar_type;
+            };
+        template <class T>
+        struct
+        quat_traits<T[4][4]>
+            {
+            typedef void scalar_type;
+            };
+        template <class T,int M,int N>
+        struct
+        quat_traits<T[M][N]>
+            {
+            typedef void scalar_type;
+            };
+
+        template <class T>
+        struct
+        quat_traits<T[4]>
+            {
+            typedef T this_quaternion[4];
+            typedef typename qvm_detail::remove_const<T>::type scalar_type;
+
+            template <int I>
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type
+            read_element( this_quaternion const & x )
+                {
+                BOOST_QVM_STATIC_ASSERT(I>=0);
+                BOOST_QVM_STATIC_ASSERT(I<4);
+                return x[I];
+                }
+
+            template <int I>
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type &
+            write_element( this_quaternion & x )
+                {
+                BOOST_QVM_STATIC_ASSERT(I>=0);
+                BOOST_QVM_STATIC_ASSERT(I<4);
+                return x[I];
+                }
+
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type
+            read_element_idx( int i, this_quaternion const & x )
+                {
+                BOOST_QVM_ASSERT(i>=0);
+                BOOST_QVM_ASSERT(i<4);
+                return x[i];
+                }
+
+            static
+            BOOST_QVM_INLINE_CRITICAL
+            scalar_type &
+            write_element_idx( int i, this_quaternion & x )
+                {
+                BOOST_QVM_ASSERT(i>=0);
+                BOOST_QVM_ASSERT(i<4);
+                return x[i];
+                }
+            };
+
+        template <class T>
+        struct
+        deduce_quat<T[4]>
+            {
+            typedef quat<T> type;
+            };
+
+        template <class T>
+        struct
+        deduce_quat<T const[4]>
+            {
+            typedef quat<T> type;
+            };
+
+        template <class T1,class T2>
+        struct
+        deduce_quat2<T1[4],T2[4]>
+            {
+            typedef quat<typename deduce_scalar<T1,T2>::type> type;
+            };
+
+        template <class T>
+        T (&ptr_qref( T * ptr ))[4]
+            {
+            return *reinterpret_cast<T (*)[4]>(ptr);
+            }
+        }
+    }
+
+#endif