README.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -----------------------
  2. Purpose of Cxx11SGXDemo
  3. -----------------------
  4. The project demonstrates serveral C++11 features inside the Enclave:
  5. - lambda expressions;
  6. - rvalue references and move semantics;
  7. - automatic type deduction with auto and decltype;
  8. - nullptr type;
  9. - strongly typed enum classes;
  10. - Range-based for statements;
  11. - static_assert keyword for compile-time assertion;
  12. - initializer lists and uniform initialization syntax;
  13. - New virtual function controls: override, final, default, and delete;
  14. - delegating constructors;
  15. - new container classes (unordered_set, unordered_map, unordered_multiset, and unordered_multimap);
  16. - tuple class;
  17. - function object wrapper;
  18. - atomic, mutexes, condition_variables;
  19. - new smart pointer classes: shared_ptr, unique_ptr;
  20. - new c++ algorithms: all_of, any_of, none_of;
  21. - variadic templates;
  22. - SFINAE;
  23. ---------------------------------------------
  24. How to Build/Execute the C++11 sample program
  25. ---------------------------------------------
  26. 1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
  27. 2. Build the project with the prepared Makefile:
  28. a. Hardware Mode, Debug build:
  29. $ make
  30. b. Hardware Mode, Pre-release build:
  31. $ make SGX_PRERELEASE=1 SGX_DEBUG=0
  32. c. Hardware Mode, Release build:
  33. $ make SGX_DEBUG=0
  34. d. Simulation Mode, Debug build:
  35. $ make SGX_MODE=SIM
  36. e. Simulation Mode, Pre-release build:
  37. $ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
  38. f. Simulation Mode, Release build:
  39. $ make SGX_MODE=SIM SGX_DEBUG=0
  40. 3. Execute the binary directly:
  41. $ ./app
  42. 4. Remember to "make clean" before switching build mode