14 InstancedThreadLocalValue() =
default;
16 InstancedThreadLocalValue(InstancedThreadLocalValue
const&) =
delete;
17 InstancedThreadLocalValue& operator=(InstancedThreadLocalValue
const&) =
delete;
19 [[nodiscard]] T get()
const {
20 auto raw =
reinterpret_cast<::std::uintptr_t
>(mKey.getValue());
21 if constexpr (::std::is_pointer_v<T>) {
22 return reinterpret_cast<T
>(raw);
24 return static_cast<T
>(raw);
29 if constexpr (::std::is_pointer_v<T>) {
30 mKey.setValue(
reinterpret_cast<void*
>(
reinterpret_cast<::std::uintptr_t
>(value)));
32 mKey.setValue(
reinterpret_cast<void*
>(
static_cast<::std::uintptr_t
>(value)));