1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-08 09:36:24 +01:00

Fix static_assert in default_delete and define move before unique_ptr

This commit is contained in:
Paul Licameli
2016-04-12 00:10:41 -04:00
parent f06dadbd68
commit 48658097d6

View File

@@ -45,7 +45,8 @@ namespace std {
{ {
// Break compilation if Y* does not convert to X* // Break compilation if Y* does not convert to X*
// I should figure out the right use of enable_if instead // I should figure out the right use of enable_if instead
static_assert((static_cast<X*>((Y*){}), true)); static_assert((static_cast<X*>((Y*){}), true),
"Pointer types not convertible");
} }
inline void operator() (void *p) const inline void operator() (void *p) const
@@ -93,6 +94,10 @@ namespace std {
#define nullptr std::__get_nullptr_t() #define nullptr std::__get_nullptr_t()
// "Cast" anything as an rvalue reference.
template<typename T> inline typename remove_reference<T>::type&& move(T&& t)
{ return static_cast<typename std::remove_reference<T>::type&&>(t); }
template<typename T, typename D = default_delete<T>> class unique_ptr template<typename T, typename D = default_delete<T>> class unique_ptr
: private D // use empty base optimization : private D // use empty base optimization
{ {
@@ -290,10 +295,6 @@ namespace std {
template<typename T> inline T&& forward(typename remove_reference<T>::type&& t) template<typename T> inline T&& forward(typename remove_reference<T>::type&& t)
{ return static_cast<T&&>(t); } { return static_cast<T&&>(t); }
// "Cast" anything as an rvalue reference.
template<typename T> inline typename remove_reference<T>::type&& move(T&& t)
{ return static_cast<typename std::remove_reference<T>::type&&>(t); }
// We need make_shared for ourselves, because the library doesn't use variadics // We need make_shared for ourselves, because the library doesn't use variadics
template<typename X, typename... Args> inline shared_ptr<X> make_shared(Args&&... args) template<typename X, typename... Args> inline shared_ptr<X> make_shared(Args&&... args)
{ {