Commit e02010c31daa3e1253ac33d269d2d8e39e7d229d

Authored by Grzegorz Jabłoński
1 parent b30744b4

unordered_set example with inline lambda

examples09/07-closures/makefile
1   -all: fun1 fun2 fun3 fun4 fun5 unordered_set3
  1 +all: fun1 fun2 fun3 fun4 fun5 unordered_set3 unordered_set4
2 2  
3 3 fun1: fun1.o
4 4 g++ -g -Wall $^ -o $@
... ... @@ -37,7 +37,13 @@ unordered_set3.o: unordered_set3.cpp
37 37 unordered_set3: unordered_set3.o
38 38 g++ -g -Wall $^ -o $@
39 39  
  40 +unordered_set4.o: unordered_set4.cpp
  41 + g++ -std=c++2a -g -c -Wall $< -o $@
  42 +
  43 +unordered_set4: unordered_set4.o
  44 + g++ -g -Wall $^ -o $@
  45 +
40 46 .PHONY: clean
41 47  
42 48 clean:
43   - -rm fun1.o fun1 fun2.o fun2 fun3.o fun3 fun4.o fun4 fun5.o fun5 unordered_set3.o unordered_set3
44 49 \ No newline at end of file
  50 + -rm fun1.o fun1 fun2.o fun2 fun3.o fun3 fun4.o fun4 fun5.o fun5 unordered_set3.o unordered_set3 unordered_set4.o unordered_set4
45 51 \ No newline at end of file
... ...
examples09/07-closures/unordered_set4.cpp 0 → 100644
  1 +#include <functional>
  2 +#include <unordered_set>
  3 +using namespace std;
  4 +#include "employee.h"
  5 +
  6 +int main() {
  7 + Employee Ben("Ben", "Keller", "000-00-0000");
  8 + Employee Bill("Bill", "McQuain", "111-11-1111");
  9 + Employee Dwight("Dwight", "Barnette", "888-88-8888");
  10 +
  11 + unordered_set<Employee, decltype([](const Employee &o) {
  12 + return std::hash<std::string>()(o.FirstName) ^
  13 + (std::hash<std::string>()(o.LastName) << 1) ^
  14 + (std::hash<std::string>()(o.ID) << 2);
  15 + })>
  16 + S;
  17 + S.insert(Bill);
  18 + S.insert(Dwight);
  19 + S.insert(Ben);
  20 +
  21 + for (auto i : S)
  22 + cout << i << endl;
  23 +}
... ...