// Original CPU teaching model; not a device simulator or benchmark.
#include <iostream>
#include <map>
#include <string>
#include <functional>
#include <stdexcept>

void require(bool ok) { if (!ok) throw std::runtime_error("model check failed"); }

int main() {
 const std::map<std::string,std::function<int(int)>> table{{"twice",[](int x){return x*2;}}};
 const auto found=table.find("twice");
 require(found!=table.end());
 const int value=found->second(7);
 const auto missing=table.find("missing");
 require(value==14 && missing==table.end());
 std::cout<<"result="<<value<<" missing=rejected\n";
}

