1 //Copyright (c) 2008-2017 Emil Dotchevski and Reverge Studios, Inc. 2 3 //Distributed under the Boost Software License, Version 1.0. (See accompanying 4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6 #ifndef BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D 7 #define BOOST_QVM_D49FD4A4597E35CF3222F4CCCFD3902D 8 9 //This file was generated by a program. Do not edit manually. 10 11 #include <boost/qvm/enable_if.hpp> 12 #include <boost/qvm/inline.hpp> 13 #include <boost/qvm/vec_traits.hpp> 14 15 namespace 16 boost 17 { 18 namespace 19 qvm 20 { 21 template <class A,class B> 22 BOOST_QVM_INLINE_OPERATIONS 23 typename enable_if_c< 24 vec_traits<A>::dim==4 && vec_traits<B>::dim==4, 25 A &>::type assign(A & a,B const & b)26 assign( A & a, B const & b ) 27 { 28 vec_traits<A>::template write_element<0>(a)=vec_traits<B>::template read_element<0>(b); 29 vec_traits<A>::template write_element<1>(a)=vec_traits<B>::template read_element<1>(b); 30 vec_traits<A>::template write_element<2>(a)=vec_traits<B>::template read_element<2>(b); 31 vec_traits<A>::template write_element<3>(a)=vec_traits<B>::template read_element<3>(b); 32 return a; 33 } 34 35 namespace 36 sfinae 37 { 38 using ::boost::qvm::assign; 39 } 40 41 namespace 42 qvm_detail 43 { 44 template <int D> 45 struct assign_vv_defined; 46 47 template <> 48 struct 49 assign_vv_defined<4> 50 { 51 static bool const value=true; 52 }; 53 } 54 55 } 56 } 57 58 #endif 59