48 typename std::enable_if<!std::is_same<void(std::decay_t<Args>&...),
52 new (storage_) T(std::forward<Args>(args)...);
64 new (storage_) T(std::move(x));
73 const T& operator*()
const {
return *operator->(); }
74 T& operator*() {
return *operator->(); }
76 const T* operator->()
const {
77 return std::launder(
reinterpret_cast<const T*
>(&storage_));
79 T* operator->() {
return std::launder(
reinterpret_cast<T*
>(&storage_)); }
85 alignas(T)
unsigned char storage_[
sizeof(T)];
Provides basic helpers for reading and writing UTF-8 encoded strings.
Definition: alignment.h:27