Merge pull request #10806 from alalek:build_cxx17

pull/10812/head
Vadim Pisarevsky 7 years ago
commit f8b03d4a4b
  1. 5
      modules/calib3d/test/test_affine3d_estimator.cpp
  2. 14
      modules/core/include/opencv2/core/cuda/functional.hpp
  3. 5
      modules/cudafeatures2d/src/brute_force_matcher.cpp
  4. 7
      modules/imgproc/src/featureselect.cpp
  5. 8
      modules/imgproc/src/generalized_hough.cpp
  6. 7
      modules/imgproc/test/test_goodfeaturetotrack.cpp
  7. 7
      modules/objdetect/perf/opencl/perf_hogdetect.cpp
  8. 2
      modules/shape/test/test_shape.cpp
  9. 14
      modules/ts/include/opencv2/ts/ts_perf.hpp
  10. 4
      modules/ts/src/cuda_test.cpp
  11. 2
      samples/cpp/shape_example.cpp

@ -138,8 +138,13 @@ bool CV_Affine3D_EstTest::testNPoints()
std::transform(fpts.ptr<Point3f>(), fpts.ptr<Point3f>() + n, tpts.ptr<Point3f>(), WrapAff(aff));
/* adding noise*/
#ifdef CV_CXX11
std::transform(tpts.ptr<Point3f>() + m, tpts.ptr<Point3f>() + n, tpts.ptr<Point3f>() + m,
[=] (const Point3f& pt) -> Point3f { return Noise(noise_level)(pt + shift_outl); });
#else
std::transform(tpts.ptr<Point3f>() + m, tpts.ptr<Point3f>() + n, tpts.ptr<Point3f>() + m, std::bind2nd(std::plus<Point3f>(), shift_outl));
std::transform(tpts.ptr<Point3f>() + m, tpts.ptr<Point3f>() + n, tpts.ptr<Point3f>() + m, Noise(noise_level));
#endif
Mat aff_est;
vector<uchar> outl;

@ -58,8 +58,22 @@
namespace cv { namespace cuda { namespace device
{
// Function Objects
#ifdef CV_CXX11
template<typename Argument, typename Result> struct unary_function
{
typedef Argument argument_type;
typedef Result result_type;
};
template<typename Argument1, typename Argument2, typename Result> struct binary_function
{
typedef Argument1 first_argument_type;
typedef Argument2 second_argument_type;
typedef Result result_type;
};
#else
template<typename Argument, typename Result> struct unary_function : public std::unary_function<Argument, Result> {};
template<typename Argument1, typename Argument2, typename Result> struct binary_function : public std::binary_function<Argument1, Argument2, Result> {};
#endif
// Arithmetic Operations
template <typename T> struct plus : binary_function<T, T, T>

@ -564,7 +564,12 @@ namespace
if (compactResult)
{
#ifdef CV_CXX11
std::vector< std::vector<DMatch> >::iterator new_end = std::remove_if(matches.begin(), matches.end(),
[](const std::vector<DMatch>& e)->bool { return e.empty(); });
#else
std::vector< std::vector<DMatch> >::iterator new_end = std::remove_if(matches.begin(), matches.end(), std::mem_fun_ref(&std::vector<DMatch>::empty));
#endif
matches.erase(new_end, matches.end());
}
}

@ -52,8 +52,11 @@
namespace cv
{
struct greaterThanPtr :
public std::binary_function<const float *, const float *, bool>
#ifdef CV_CXX11
struct greaterThanPtr
#else
struct greaterThanPtr : public std::binary_function<const float *, const float *, bool>
#endif
{
bool operator () (const float * a, const float * b) const
// Ensure a fully deterministic result of the sort

@ -385,7 +385,11 @@ namespace
const double thetaScale = levels_ / 360.0;
r_table_.resize(levels_ + 1);
#ifdef CV_CXX11
std::for_each(r_table_.begin(), r_table_.end(), [](std::vector<Point>& e)->void { e.clear(); });
#else
std::for_each(r_table_.begin(), r_table_.end(), std::mem_fun_ref(&std::vector<Point>::clear));
#endif
for (int y = 0; y < templSize_.height; ++y)
{
@ -692,8 +696,12 @@ namespace
getContourPoints(edges, dx, dy, points);
features.resize(levels_ + 1);
#ifdef CV_CXX11
std::for_each(features.begin(), features.end(), [=](std::vector<Feature>& e) { e.clear(); e.reserve(maxBufferSize_); });
#else
std::for_each(features.begin(), features.end(), std::mem_fun_ref(&std::vector<Feature>::clear));
std::for_each(features.begin(), features.end(), std::bind2nd(std::mem_fun_ref(&std::vector<Feature>::reserve), maxBufferSize_));
#endif
for (size_t i = 0; i < points.size(); ++i)
{

@ -56,8 +56,11 @@ enum { MINEIGENVAL=0, HARRIS=1, EIGENVALSVECS=2 };
/////////////////////ref//////////////////////
struct greaterThanPtr :
public std::binary_function<const float *, const float *, bool>
#ifdef CV_CXX11
struct greaterThanPtr
#else
struct greaterThanPtr : public std::binary_function<const float *, const float *, bool>
#endif
{
bool operator () (const float * a, const float * b) const
{ return *a > *b; }

@ -53,8 +53,11 @@ namespace opencv_test {
namespace ocl {
///////////// HOG////////////////////////
struct RectLess :
public std::binary_function<cv::Rect, cv::Rect, bool>
#ifdef CV_CXX11
struct RectLess
#else
struct RectLess : public std::binary_function<cv::Rect, cv::Rect, bool>
#endif
{
bool operator()(const cv::Rect& a,
const cv::Rect& b) const

@ -105,7 +105,7 @@ protected:
}
// Uniformly sampling
random_shuffle(contoursQuery.begin(), contoursQuery.end());
cv::randShuffle(contoursQuery);
int nStart=NP;
vector<PointType> cont;
for (int i=0; i<nStart; i++)

@ -707,8 +707,11 @@ namespace comparators
{
template<typename T>
struct RectLess_ :
public std::binary_function<cv::Rect_<T>, cv::Rect_<T>, bool>
#ifdef CV_CXX11
struct RectLess_
#else
struct RectLess_ : public std::binary_function<cv::Rect_<T>, cv::Rect_<T>, bool>
#endif
{
bool operator()(const cv::Rect_<T>& r1, const cv::Rect_<T>& r2) const
{
@ -721,8 +724,11 @@ struct RectLess_ :
typedef RectLess_<int> RectLess;
struct KeypointGreater :
public std::binary_function<cv::KeyPoint, cv::KeyPoint, bool>
#ifdef CV_CXX11
struct KeypointGreater
#else
struct KeypointGreater : public std::binary_function<cv::KeyPoint, cv::KeyPoint, bool>
#endif
{
bool operator()(const cv::KeyPoint& kp1, const cv::KeyPoint& kp2) const
{

@ -462,7 +462,11 @@ namespace cvtest
return false;
}
#ifdef CV_CXX11
struct KeyPointLess
#else
struct KeyPointLess : std::binary_function<cv::KeyPoint, cv::KeyPoint, bool>
#endif
{
bool operator()(const cv::KeyPoint& kp1, const cv::KeyPoint& kp2) const
{

@ -43,7 +43,7 @@ static vector<Point> simpleContour( const Mat& currentQuery, int n=300 )
}
// Uniformly sampling
random_shuffle(contoursQuery.begin(), contoursQuery.end());
cv::randShuffle(contoursQuery);
vector<Point> cont;
for (int i=0; i<n; i++)
{

Loading…
Cancel
Save