50 typename std::enable_if<!std::is_same<void(std::decay_t<Args>&...),
54 new (storage_) T(std::forward<Args>(args)...);
66 new (storage_) T(std::move(x));
75 const T& operator*()
const {
return *operator->(); }
76 T& operator*() {
return *operator->(); }
78 const T* operator->()
const {
79 return std::launder(
reinterpret_cast<const T*
>(&storage_));
81 T* operator->() {
return std::launder(
reinterpret_cast<T*
>(&storage_)); }
87 alignas(T)
unsigned char storage_[
sizeof(T)];
The Pigweed namespace.
Definition: alignment.h:27