这个问题可能看起来很奇怪。我想这么做是因为我们有一些代码需要在多个平台上构建,但某些平台不支持thread_local,所以使用boost::thread_specific_ptr代替。然而,为每个平台(x86/x64/arm,debug/release,操作系统等)构建boost二进制文件很麻烦。
我想知道是否可以通过thread_local实现thread_specific_ptr,这样我们就可以让客户端代码更加优雅(避免使用#ifdef)。
我希望有一个头文件,类似于:
我想知道是否可以通过thread_local实现thread_specific_ptr,这样我们就可以让客户端代码更加优雅(避免使用#ifdef)。
我希望有一个头文件,类似于:
#if HAS_THREAD_LOCAL
class thread_specific_ptr
{
... // use thread_local to implement
};
#else
using boost::thread_specific_ptr
#endif
我找不到路,也许你可以,谢谢。