86 template <
typename... Args>
89 new (&storage_) T(std::forward<Args>(args)...);
96 T&
access() {
return *
reinterpret_cast<T*
>(&storage_); }
97 const T&
access()
const {
return *
reinterpret_cast<const T*
>(&storage_); }
100 typename std::aligned_storage<
sizeof(T),
alignof(T)>
::type storage_;
Wraps an underlying type T such that its storage is a direct member field of this object (i....
Definition: never_destroyed.h:81
T & access()
Returns the underlying T reference.
Definition: never_destroyed.h:96
~never_destroyed()=default
Does nothing. Guaranteed!
never_destroyed(Args &&... args)
Passes the constructor arguments along to T using perfect forwarding.
Definition: never_destroyed.h:87
const T & access() const
Definition: never_destroyed.h:97
type
Definition: core.h:575
Provides careful macros to selectively enable or disable the special member functions for copy-constr...
#define DRAKE_NO_COPY_NO_MOVE_NO_ASSIGN(Classname)
DRAKE_NO_COPY_NO_MOVE_NO_ASSIGN deletes the special member functions for copy-construction,...
Definition: drake_copyable.h:33
Definition: drake_assertion_error.h:6