README.txt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. Make sure your environment is set:
  28. $ source ${sgx-sdk-install-path}/environment
  29. 3. Build the project with the prepared Makefile:
  30. a. Hardware Mode, Debug build:
  31. $ make
  32. b. Hardware Mode, Pre-release build:
  33. $ make SGX_PRERELEASE=1 SGX_DEBUG=0
  34. c. Hardware Mode, Release build:
  35. $ make SGX_DEBUG=0
  36. d. Simulation Mode, Debug build:
  37. $ make SGX_MODE=SIM
  38. e. Simulation Mode, Pre-release build:
  39. $ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
  40. f. Simulation Mode, Release build:
  41. $ make SGX_MODE=SIM SGX_DEBUG=0
  42. 4. Execute the binary directly:
  43. $ ./app
  44. 5. Remember to "make clean" before switching build mode