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
#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 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 ,
raj@rajaditya.com