?
Danke nochmal Arcoth,
hat mich noch viel Schweiß und Tränen gekostet und das Ergebnis ist noch nicht sehr befriedigend, aber ich habe etwas zum laufen gebracht dank Deiner Hilfe, ich poste mal wie, für eventuelle Leidensgenossen.
Leider ist constexpr in Visual Studio 2013 noch nicht verfügbar, ob es ausschließlich daran lag kann ich nicht nachvollziehen, ich musste deshalb auf ein Templatelevel verzichten und einen Extractor für jeden meiner Tupleeinträge erzeugen:
// Extrahiert ausschließlich den nullten Tuple Eintrag
struct Extractor0 {
template <typename Tuple>
Point_3& operator()(Tuple&& tup) const {
return tup.get<0>();}
};
typedef boost::transform_iterator<Extractor0, RGBNPointList::iterator, Point_3&> point_iter;
Verwendet wird das Ganze dann so:
point_iter points_begin() {
Extractor0 m;
return point_iter(_raw_points->begin(), m);
}
point_iter points_end() {
Extractor0 m;
return point_iter(_raw_points->end(), m);
}
_raw_points ist vom typ:
typedef boost::tuple<Point_3, Point_3, Vector_3> RGBNPoint;
typedef std::vector<RGBNPoint> RGBNPointList