diff --git a/modules/contrib/src/spinimages.cpp b/modules/contrib/src/spinimages.cpp index 21cbc8b9fb..b010900579 100644 --- a/modules/contrib/src/spinimages.cpp +++ b/modules/contrib/src/spinimages.cpp @@ -85,10 +85,10 @@ namespace }; size_t colors_mum = sizeof(colors)/sizeof(colors[0]); -#if (defined __cplusplus && __cplusplus > 199711L) || defined _STLPORT_MAJOR -#else -template void iota(FwIt first, FwIt last, T value) { while(first != last) *first++ = value++; } -#endif +template inline void _iota(FwIt first, FwIt last, T value) +{ + while(first != last) *first++ = value++; +} void computeNormals( const Octree& Octree, const vector& centers, vector& normals, vector& mask, float normalRadius, int minNeighbors = 20) @@ -799,14 +799,14 @@ void cv::SpinImageModel::selectRandomSubset(float ratio) else if (setSize == vtxSize) { subset.resize(vtxSize); - iota(subset.begin(), subset.end(), 0); + _iota(subset.begin(), subset.end(), 0); } else { RNG& rnd = theRNG(); vector left(vtxSize); - iota(left.begin(), left.end(), (size_t)0); + _iota(left.begin(), left.end(), (size_t)0); subset.resize(setSize); for(size_t i = 0; i < setSize; ++i) @@ -879,7 +879,7 @@ void cv::SpinImageModel::compute() { mesh.computeNormals(normalRadius, minNeighbors); subset.resize(mesh.vtx.size()); - iota(subset.begin(), subset.end(), 0); + _iota(subset.begin(), subset.end(), 0); } else mesh.computeNormals(subset, normalRadius, minNeighbors);