Boost logo

Boost :

Subject: [boost] [QVM] Help with small example
From: Rajaditya Mukherjee (rajaditya.mukherjee_at_[hidden])
Date: 2015-12-09 20:13:53


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_at_[hidden] <mukherjee.62_at_[hidden]>,
raj_at_[hidden] <mukherjr_at_[hidden]>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk