
I am trying to run boost::qvm on my machine. I am using MS Visual Studio 2013 with Boost 1.59 as the backend. #include <boost/qvm/all.hpp> #include <iostream> class float4 { public: float4(float a, float b, float c, float d) { container[0] = a; container[1] = b; container[2] = c; container[3] = d; } float container[4]; }; namespace boost { namespace qvm { template<> struct v_traits<float4> { static int const dim = 3; typedef float scalar_type; template <int I> static inline scalar_type &w(float4 & v) { return v.container[I]; } template <int I> static inline scalar_type r(float4 const & v) { return v.container[I]; } static inline scalar_type &iw(int i, float4 &v) { return v.container[i]; } static inline scalar_type ir(int i, float4 const & v) { return v.container[i]; } }; } } int main() { float4 vec(11.0,0.0,5.0,-6.0); std::cout << boost::qvm::mag(vec); (vec,boost::qvm::A<1>) = 112.0; std::cout << boost::qvm::mag(vec); } In the line *(vec,boost::qvm::A<1>) = 112.0, *I am getting an compiler error that says error C2563: mismatch in formal parameter list error C2568: ',' : unable to resolve function overload 1> d:\dropbox\programs\boost_qvm\include\boost\qvm\v_access.hpp(79): could be 'boost::qvm::vector_access_tag<I> boost::qvm::A(void)' 1> d:\dropbox\programs\boost_qvm\include\boost\qvm\m_access.hpp(78): or 'boost::qvm::matrix_access_tag<R,C> boost::qvm::A(void)' Any help ? Maybe I am doing something stupid ? Any help by Emil or anyone else is appreciated. *Rajaditya Mukherjee * *3rd Year Graduate Student* Dept. of Computer Science and Engineering The Ohio State University Columbus, Ohio Tel :- +1-(614)-271-4439 email :- rajaditya.mukherjee@gmail.com <mukherjee.62@osu.edu>, raj@rajaditya.com <mukherjr@cse.ohio-state.edu>