Hello all, just interesting. VS2022 compiles this code fine (celltris is a pointer and does not have size()) :
/** Intersect range of cells. */
template <class T> void intersectMultiCells(std::vector<LINT> *activecells, LINT cell0, LINT cell1,
TTriangles<T> *tris, TTriangles<T> *other,
std::vector<std::vector<LINT>> *celltris, std::vector<std::vector<LINT>> *ocelltris,
std::vector<TPoint<T>> *centres, std::vector<TPoint<T>> *ocentres,
// output :
std::vector<std::pair<LINT,LINT>> *intersected, std::vector<TPoint<T>> *UVintrs,
std::vector<std::pair<TPoint<T>,TPoint<T>>> *edges,
T tolerance, T parmtolerance)
{
for (LINT i = cell0; i <= cell1; i++)
{
LINT index = (*activecells)[i];
intersectCells(tris,other,index,
#if 0
// **THIS COMPILES! celltris is a pointer**
celltris,0,int(celltris[index].size()) - 1,
ocelltris,0,int(ocelltris[index].size()) - 1,
#else
// it should be :
celltris,0,int((*celltris)[index].size()) - 1,
ocelltris,0,int((*ocelltris)[index].size()) - 1,
centres,ocentres,intersected,UVintrs,edges,tolerance,parmtolerance);
#endif
}
}
Top comments (0)