Fix for bug #2067 --- use shared_mutex for thread_group rather than a simple mutex Fix for move assignment of unique_lock if rvalue refs supported More fixes for compilers with rvalue ref support [Xpressive] nested results uses a custom list type that allows incomplete types, does no dynamic allocation in the default constructor, and has a guarnteed O(1) splice; fixes #3278 [Smart_ptr] Renamed enable_shared_from_this2 to enable_shared_from_raw and added shared_from_raw free function. These changes fix the pointer value in shared_ptr which were obtained before an external shared_ptr has taken ownership of the object (for example when a shared_ptr to this is obtained in an object's constructor). [Numeric] see #3501: Reusing concepts from different compile units yields multiple defined symbols (Incomplete) * removed inlines that were added with the last commit * added anonymous namespace to make functions local to compilation unit