c++11新性能测试3

来源:互联网 发布:win7设置网络连接 编辑:程序博客网 时间:2024/05/21 20:20
#include<iostream>#include<functional>using namespace std;using namespace std::placeholders;//函数int half(int x) {return x/2;}//仿函数struct third_t {    int operator()(int x) {return x/3;}};//结构体struct MyValue {   int value;   int fifth() {return value / 5;}};double my_divide (double x, double y) {return x/y;}int main(){    function<int(int)> fn1 = half;    function<int(int)> fn2 = ½    function<int(int)> fn3 = third_t();    function<int(int)> fn4 = [](int x){return x /4;}; //lambda    function<int(int)> fn5 = negate<int>();     std::cout << "fn1(60): " << fn1(60) << '\n';  std::cout << "fn2(60): " << fn2(60) << '\n';  std::cout << "fn3(60): " << fn3(60) << '\n';  std::cout << "fn4(60): " << fn4(60) << '\n';  std::cout << "fn5(60): " << fn5(60) << '\n';  cout << "(*fn1.target<int(*)(int)>())(100) = "  << (*fn1.target<int(*)(int)>())(100)<< endl;  //target() 成员函数的作用是:Returns a pointer to the callable object stored in the function object.  std::function<int(MyValue&)> value = &MyValue::value;  // 指向数据成员的指针  std::function<int(MyValue&)> fifth = &MyValue::fifth;  // 指向成员函数的指针  MyValue sixty {60};  std::cout << "value(sixty): " << value(sixty) << '\n';  std::cout << "fifth(sixty): " << fifth(sixty) << '\n';  cout << "===============================" << endl;  auto fn6 = bind(my_divide, _1, _2);  auto fn7 = bind(my_divide, _2, _1);  auto fn8 = bind(my_divide, _1, 3);  cout << "fn6(10,5) = " << fn6(10,5) <<endl;  cout << "fn7(10,5) = " << fn7(10,5) <<endl;  cout << "fn8(12) = "   << fn8(12) <<endl;  return 0;}

0 0