Make prohibit_void_ptr methods constexpr
This commit is contained in:
parent
0f4c9f240e
commit
506ab6e5de
|
@ -24,11 +24,11 @@ public:
|
|||
bool operator>=(U &&) const = delete;
|
||||
template <typename U>
|
||||
bool operator!=(U &&rhs) const { return !operator==(static_cast<U &&>(rhs)); }
|
||||
exact_type(T *t) : p(t) {}
|
||||
constexpr exact_type(T *t) : p(t) {}
|
||||
// Conversion to the exact type is permitted
|
||||
operator const T *() const { return p; }
|
||||
operator typename std::remove_const<T>::type *() const { return p; }
|
||||
bool operator==(const T *rhs) const { return p == rhs; }
|
||||
constexpr operator const T *() const { return p; }
|
||||
constexpr operator typename std::remove_const<T>::type *() const { return p; }
|
||||
constexpr bool operator==(const T *rhs) const { return p == rhs; }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
|
@ -36,6 +36,6 @@ class prohibit_void_ptr
|
|||
{
|
||||
public:
|
||||
// Return a proxy when the address is taken
|
||||
exact_type<T> operator&() { return static_cast<T*>(this); }
|
||||
exact_type<T const> operator&() const { return static_cast<T const*>(this); }
|
||||
constexpr exact_type<T> operator&() { return static_cast<T*>(this); }
|
||||
constexpr exact_type<T const> operator&() const { return static_cast<T const*>(this); }
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue