I have such piece of code
namespace bg = boost::geometry;
typedef typename std::conditional<highDimension,
typename bg::model::point<double, 6, bg::cs::cartesian>,
typename bg::model::point<double, 5, bg::cs::cartesian>>::type point;
..........
point p;
p.set<0>(0);
p.set<1>(0);
p.set<2>(0);
..........
GCC show me a lot of errors like "error: invalid operands of types '' and 'int' to binary 'operator<'
p.set<1>(col.a());" So it just try to 'compare' p.set
and 1
The boost class really has template function set, but compiler don't use it as function.
If i make typedef directly from boost type, like typedef bg::model::point<double, 5, bg::cs::cartesian> point;
everything works fine.
I just want to select different dimension sizes depending on template argument highDimension
. But now I have no idea how to force GCC understand me :)