
if you cannot use c++11 for some reasons, it is good to have source-compatible version in namespace boost ...
I'm not sure that it is, though. You have a program that uses boost::thread. Its still not a program that uses std::thread. Changing boost::thread to work like std::thread causes problems for people using boost::thread now, and will only be a real help to portability if boost::thread is limited to what std::thread does. It seems to me likely that by the time the mess is sorted out, it is likely that compilers will offer enough compatibility with std::thread as defined that its a big waste of effort, and in the mean time everyone who has boost-based systems now has a world of pain as they work out when/how to 'big bang' entire systems (or at least the linked-together parts) over to the new behaviour. Why would anyone writing new software on a modern platform use boost::thread rather than std::thread unless then actually wanted the old semantics, anyway?