C++11 - transporting C++ exceptions between threads
C++11 introduced std::exception_ptr. The main purpose of this class is to allow to tranport C++ exceptions to different threads.
in 2012 C++ and Beyond Seminar, Andrei showed the Expected type for function return value. Internally this class is utilizing std::exception_ptr to transport exceptions.
You can find some examples for Windows from the following links.
http://msdn.microsoft.com/en-us/library/dd293602.aspx