29 If the is an error in thread_pool_base::create_direct in the instantiation of decltype because this class is selected as the best match, it is possible that he incorrect operator<<() overload is being selected in "thread_desl_types.hpp".
150/// This library-internal class just creates a thread_wk_t for the user's closure_base-derived closure.
151/**
152 Note: one cannot give "exception-specifications" to non-joinable work, as you can't call get_results() on it, because the non-joinable transfer doesn't return an execution_context. (A constructor isn't used because you can't return a value from the constructor, and a member-template isn't used because of MSVC++ v12.00.8168 compiler limitations.)
153
154 \param InpWk The closure_base-derived closure should contain a non-overloaded function called process() or process(result_type &), possibly const-qualified.
155
156 \see thread_wk_t
157*/
158template<class P, class InpWk, class FnType, FnType FnPtr>
164 \todo It would be good to make use of the is_const member to determine if the mutation is pure. If so then all sorts of nice things could be done like memoization of the result of the mutation, i.e. place this object type into a hash_map at compile-time, and place the result into there too, and for later mutations of the same object instance to short-cut needing to do all the using a thread to generate the result malarky, as long as we save the object instance state sufficiently.