Эта проблема может выглядеть странно. Я хочу сделать это, потому что у нас есть некоторый код, который нужно собрать на нескольких платформах, но некоторые платформы не поддерживают thread_local, тогда вместо этого используйте boost::thread_specific_ptr. однако создавать двоичный файл boost для каждой платформы (x86/x64/arm, debug/release, os, слишком много) неприятно.
Интересно, можно ли внедрить thread_specific_ptr через thread_local, чтобы мы могли сделать клиентский код более элегантным (избегайте #ifdef)
Я хочу иметь заголовочный файл, например:
#if HAS_THREAD_LOCAL
class thread_specific_ptr
{
... // use thread_local to implement
};
#else
using boost::thread_specific_ptr
#endif
Я не могу найти способ, может быть, вы можете, спасибо.