corda/sgx-jvm/linux-sgx/SampleCode/Cxx11SGXDemo
Tommy Lillehagen f21f8e7142
ENT-1187 - Update Intel SGX SDK (#165)
* Remove diverged copy of 'linux-sgx'

* Squashed 'sgx-jvm/linux-sgx/' content from commit 3699ffd5e

git-subtree-dir: sgx-jvm/linux-sgx
git-subtree-split: 3699ffd5ebd8e79d599301fa2e5814e2386cad2d

* ENT-1194 - Executable heap

* ENT-1194 - Placeholder for passing of enclave context to create_thread
2017-12-14 12:33:15 +00:00
..
.settings Refresh linux-sgx to v1.9+ from upstream. (#42) 2017-09-13 14:52:21 +01:00
App Refresh linux-sgx to v1.9+ from upstream. (#42) 2017-09-13 14:52:21 +01:00
Enclave ENT-1187 - Update Intel SGX SDK (#165) 2017-12-14 12:33:15 +00:00
.cproject Refresh linux-sgx to v1.9+ from upstream. (#42) 2017-09-13 14:52:21 +01:00
.project Refresh linux-sgx to v1.9+ from upstream. (#42) 2017-09-13 14:52:21 +01:00
Makefile Refresh linux-sgx to v1.9+ from upstream. (#42) 2017-09-13 14:52:21 +01:00
README.txt ENT-1187 - Update Intel SGX SDK (#165) 2017-12-14 12:33:15 +00:00

-----------------------
Purpose of Cxx11SGXDemo
-----------------------

The project demonstrates serveral C++11 features inside the Enclave:
- lambda expressions;
- rvalue references and move semantics;
- automatic type deduction with auto and decltype;
- nullptr type;
- strongly typed enum classes;
- Range-based for statements;
- static_assert keyword for compile-time assertion;
- initializer lists and uniform initialization syntax;
- New virtual function controls: override, final, default, and delete;
- delegating constructors;
- new container classes (unordered_set, unordered_map, unordered_multiset, and unordered_multimap);
- tuple class;
- function object wrapper;
- atomic, mutexes, condition_variables;
- new smart pointer classes: shared_ptr, unique_ptr;
- new c++ algorithms: all_of, any_of, none_of;
- variadic templates;
- SFINAE;

---------------------------------------------
How to Build/Execute the C++11 sample program
---------------------------------------------
1. Install Intel(R) Software Guard Extensions (Intel(R) SGX) SDK for Linux* OS
2. Make sure your environment is set:
    $ source ${sgx-sdk-install-path}/environment
3. Build the project with the prepared Makefile:
    a. Hardware Mode, Debug build:
        $ make
    b. Hardware Mode, Pre-release build:
        $ make SGX_PRERELEASE=1 SGX_DEBUG=0
    c. Hardware Mode, Release build:
        $ make SGX_DEBUG=0
    d. Simulation Mode, Debug build:
        $ make SGX_MODE=SIM
    e. Simulation Mode, Pre-release build:
        $ make SGX_MODE=SIM SGX_PRERELEASE=1 SGX_DEBUG=0
    f. Simulation Mode, Release build:
        $ make SGX_MODE=SIM SGX_DEBUG=0
4. Execute the binary directly:
    $ ./app
5. Remember to "make clean" before switching build mode