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:
@@ -45,7 +45,8 @@ namespace std {
|
||||
{
|
||||
// Break compilation if Y* does not convert to X*
|
||||
// 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
|
||||
@@ -93,6 +94,10 @@ namespace std {
|
||||
|
||||
#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
|
||||
: private D // use empty base optimization
|
||||
{
|
||||
@@ -290,10 +295,6 @@ namespace std {
|
||||
template<typename T> inline T&& forward(typename remove_reference<T>::type&& 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
|
||||
template<typename X, typename... Args> inline shared_ptr<X> make_shared(Args&&... args)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user