30 #ifndef MPD_MANUAL_HXX 31 #define MPD_MANUAL_HXX 40 #if CLANG_OR_GCC_VERSION(4,7) 41 #pragma GCC diagnostic push 42 #pragma GCC diagnostic ignored "-Wstrict-aliasing" 68 template<
typename... Args>
73 new(p) T(std::forward<Args>(args)...);
94 void *p =
static_cast<void *
>(data);
95 return *
static_cast<T *
>(p);
98 const T &
Get()
const {
101 const void *p =
static_cast<const void *
>(data);
102 return *
static_cast<const T *
>(p);
109 operator const T &()
const {
122 #if CLANG_OR_GCC_VERSION(4,7) 123 #pragma GCC diagnostic pop
const T * operator->() const
Container for an object that gets constructed and destructed manually.
void Construct(Args &&... args)