跳到主内容

must-ret-tof.cc (源文件)

#include <iostream>
using namespace std;

bool (*must_true(int a, int b))(const int &, const int &) {
  if (a > b) {
    return [](const int &a, const int &b) { return a > b; };
  } else {
    return [](const int &a, const int &b) { return a <= b; };
  }
}

auto must_false(int a, int b) -> bool (*)(const int &, const int &) {
  if (a > b) {
    return [](const int &a, const int &b) { return a <= b; };
  } else {
    return [](const int &a, const int &b) { return a > b; };
  }
}

int main() {
  int a = 10;
  int b = 20;
  auto ft = must_true(a, b);
  auto ff = must_false(a, b);
  cout << ft(a, b) << endl << ff(a, b) << endl;
  return 0;
}