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
Container for an object that gets constructed and destructed manually.
void Construct(Args &&...args)
const T * operator->() const