
Hello. Thanks for feedback, Mathias! Mathias Gaunard wrote:
You might want to use proper move emulation in the absence of C++0x, as is provided by Boost.Move. There is no such library Boost.Move. Do you mean to implement move like Boost.Thread does? If so. I think it is not necessary because one can just write "underlying_resource_type" instead of "thread_move_t" and ".release()" instead ".move()".
Also it seems your implementation doesn't support throwing move constructors. If copy constructor or move constructor can throw an exception the only function that works incorrect is release. There is no way to implement it in exception safe manner in this case.
Note that usually this is not a problem. Usually underlying_resource_type is not something complex, but rather it is just int or void* or something like that. So its copy and move constructors do not throw exceptions.