id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 13381,Compile error with matrix_transformer.apply in Visual C++ 2015,chw@…,Barend Gehrels,"I just upgraded my code from boost 1.61.0 to 1.66.0 and had to make some smaller changes due to the switch to boost::qvm for the transformations. However, every single line containing transform (transforming point to point via matrix_transformer) failed to compile in my case, because the compiler kept complaining that the template argument for operator 'R' could not be deduced. The compiler errors were not particularly helpful, but I figured out that the following modification helps: {{{ 172c172 < c1 * m_matrix(0,0) + c2 * m_matrix(0,1) + c3 * m_matrix(0,2) + m_matrix(0,3))); --- > c1 * qvm::A<0,0>(m_matrix) + c2 * qvm::A<0,1>(m_matrix) + c3 * qvm::A<0,2>(m_matrix) + qvm::A<0,3>(m_matrix))); 174c174 < c1 * m_matrix(1,0) + c2 * m_matrix(1,1) + c3 * m_matrix(1,2) + m_matrix(1,3))); --- > c1 * qvm::A<1,0>(m_matrix) + c2 * qvm::A<1,1>(m_matrix) + c3 * qvm::A<1,2>(m_matrix) + qvm::A<1,3>(m_matrix))); 176c176 < c1 * m_matrix(2,0) + c2 * m_matrix(2,1) + c3 * m_matrix(2,2) + m_matrix(2,3))); --- > c1 * qvm::A<2,0>(m_matrix) + c2 * qvm::A<2,1>(m_matrix) + c3 * qvm::A<2,2>(m_matrix) + qvm::A<2,3>(m_matrix))); }}} Basically I just replaced m_matrix(i,j) by qvm::A(m_matrix) in matrix_transformer::apply.",Bugs,closed,Boost 1.67.0,geometry,Boost 1.66.0,Problem,fixed,,