C++11 匿名函数(由[&]想到的)
最近在读别人写的C++代码时发现一些很古怪的东西:
// Declare graph of factor types and build the factor structure std::vector<dtf::prior_t> priors; float tree_ms = ts::timing_ms([&]() { graph = InitFactorGraph(forest, priors, dags_train, sigma_unary, sigma_pw, levels_unary, levels_pw, feat_box_max, feat_radius); }); std::cout << "Decision tree induction took " << (tree_ms/1000.0) << "s" << std::endl;
return processFrames([&](cv::Mat frame) { cv::Mat withoutBackground = bgHider.process(frame); cv::Mat eroded; cv::erode(withoutBackground, eroded, cv::Mat(), cv::Point(-1,-1), 3); cv::Mat dilated; cv::dilate(eroded, dilated, cv::Mat(), cv::Point(-1,-1), 5); //cv::Mat processed = redFilter.filter(withoutBackground); cv::Mat* showImage = 0; switch (showStage) { case 0: showImage = &frame; break; case 1: showImage = &withoutBackground; break; case 2: showImage = &eroded; break; case 3: showImage = &dilated; break; default: showImage = 0; } if (showImage) { std::ostringstream oss; auto millis = stopWatch.getMillisAndReset(); oss << 1000/millis; cv::putText(*showImage, oss.str(),cv::Point(30,frame.rows-30), cv::FONT_HERSHEY_COMPLEX_SMALL, 0.8,