Commit 5fbd25bb authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Fix propagate_const under gcc49

Summary: [Folly] Fix `propagate_const` under gcc49.

Reviewed By: andrewjcg

Differential Revision: D7230851

fbshipit-source-id: 0cd4df15d5a0f7ae06e26a82ca725b30d479f458
parent 0085c239
main v2022.02.14.00 v2022.02.07.00 v2022.01.31.00 v2022.01.24.00 v2022.01.17.00 v2022.01.10.00 v2022.01.03.00 v2021.12.27.00 v2021.12.20.00 v2021.12.13.00 v2021.12.06.00 v2021.11.29.00 v2021.11.15.00 v2021.11.08.00 v2021.11.01.00 v2021.10.25.00 v2021.10.18.00 v2021.10.11.00 v2021.10.04.00 v2021.09.27.00 v2021.09.20.00 v2021.09.13.00 v2021.09.06.00 v2021.08.30.00 v2021.08.23.00 v2021.08.02.00 v2021.07.22.00 v2021.07.20.01 v2021.07.20.00 v2021.06.28.00 v2021.06.14.00 v2021.06.07.00 v2021.05.31.00 v2021.05.24.00 v2021.05.17.00 v2021.05.10.00 v2021.05.03.00 v2021.04.26.00 v2021.04.19.00 v2021.04.12.00 v2021.04.05.00 v2021.03.29.00 v2021.03.22.00 v2021.03.15.00 v2021.03.08.00 v2021.03.01.00 v2021.02.22.00 v2021.02.15.00 v2021.02.08.00 v2021.02.01.00 v2021.01.25.00 v2021.01.18.01 v2021.01.18.00 v2021.01.11.00 v2021.01.04.00 v2020.12.28.00 v2020.12.21.00 v2020.12.14.00 v2020.12.07.00 v2020.11.30.00 v2020.11.23.00 v2020.11.16.00 v2020.11.09.00 v2020.11.02.00 v2020.10.26.00 v2020.10.19.00 v2020.10.12.00 v2020.10.05.00 v2020.09.28.00 v2020.09.21.00 v2020.09.14.00 v2020.09.07.00 v2020.08.31.00 v2020.08.24.00 v2020.08.17.00 v2020.08.10.00 v2020.08.03.00 v2020.07.27.00 v2020.07.20.00 v2020.07.13.00 v2020.07.06.00 v2020.06.29.00 v2020.06.15.00 v2020.06.08.00 v2020.06.01.00 v2020.05.25.00 v2020.05.18.00 v2020.05.11.00 v2020.05.04.00 v2020.04.27.00 v2020.04.20.00 v2020.04.13.00 v2020.04.06.00 v2020.03.30.00 v2020.03.23.00 v2020.03.16.00 v2020.03.09.00 v2020.03.02.00 v2020.02.24.00 v2020.02.17.00 v2020.02.10.00 v2020.02.03.00 v2020.01.27.00 v2020.01.20.00 v2020.01.13.00 v2020.01.06.00 v2019.12.30.00 v2019.12.23.00 v2019.12.16.00 v2019.12.09.00 v2019.12.06.00 v2019.12.02.00 v2019.11.11.00 v2019.11.04.00 v2019.10.28.00 v2019.10.21.00 v2019.10.14.00 v2019.10.07.00 v2019.09.30.00 v2019.09.23.00 v2019.09.16.00 v2019.09.09.00 v2019.09.02.00 v2019.08.26.00 v2019.08.19.00 v2019.08.12.00 v2019.08.05.00 v2019.07.29.00 v2019.07.22.00 v2019.06.17.00 v2019.06.10.00 v2019.06.03.00 v2019.05.27.00 v2019.05.20.00 v2019.05.13.00 v2019.05.06.00 v2019.04.29.00 v2019.04.22.00 v2019.04.15.00 v2019.04.08.00 v2019.04.01.00 v2019.03.25.00 v2019.03.18.00 v2019.03.04.00 v2019.02.25.00 v2019.02.18.00 v2019.02.11.00 v2019.02.04.00 v2019.01.28.00 v2019.01.21.00 v2019.01.14.00 v2019.01.07.00 v2018.12.31.00 v2018.12.24.00 v2018.12.17.00 v2018.12.10.00 v2018.12.03.00 v2018.11.26.00 v2018.11.19.00 v2018.11.12.00 v2018.11.05.00 v2018.10.29.00 v2018.10.22.00 v2018.10.15.00 v2018.10.08.00 v2018.10.01.00 v2018.09.24.00 v2018.09.17.00 v2018.09.10.01 v2018.09.10.00 v2018.09.03.01 v2018.09.03.00 v2018.08.27.00 v2018.08.20.00 v2018.08.13.00 v2018.08.09.00 v2018.08.06.00 v2018.07.30.00 v2018.07.23.00 v2018.07.16.00 v2018.07.09.00 v2018.07.02.00 v2018.06.25.00 v2018.06.18.00 v2018.06.11.00 v2018.06.04.00 v2018.05.28.00 v2018.05.21.00 v2018.05.14.00 v2018.05.07.00 v2018.04.30.00 v2018.04.23.00 v2018.04.16.00 v2018.04.09.00 v2018.04.02.00 v2018.03.26.00 v2018.03.19.00 v2018.03.12.00
No related merge requests found
......@@ -64,8 +64,8 @@ class propagate_const {
_t<std::remove_reference<decltype(*std::declval<Pointer&>())>>;
constexpr propagate_const() = default;
constexpr propagate_const(propagate_const&&) = default;
constexpr propagate_const(propagate_const const&) = delete;
FOLLY_CPP14_CONSTEXPR propagate_const(propagate_const&&) = default;
propagate_const(propagate_const const&) = delete;
template <
typename OtherPointer,
......@@ -105,8 +105,8 @@ class propagate_const {
constexpr propagate_const(OtherPointer&& other)
: pointer_(static_cast<OtherPointer&&>(other)) {}
constexpr propagate_const& operator=(propagate_const&&) = default;
constexpr propagate_const& operator=(propagate_const const&) = delete;
FOLLY_CPP14_CONSTEXPR propagate_const& operator=(propagate_const&&) = default;
propagate_const& operator=(propagate_const const&) = delete;
template <
typename OtherPointer,
......@@ -134,7 +134,7 @@ class propagate_const {
detail::propagate_const_adl::adl_swap(pointer_, other.pointer_);
}
constexpr element_type* get() {
FOLLY_CPP14_CONSTEXPR element_type* get() {
return get_(pointer_);
}
......@@ -146,7 +146,7 @@ class propagate_const {
return static_cast<bool>(pointer_);
}
constexpr element_type& operator*() {
FOLLY_CPP14_CONSTEXPR element_type& operator*() {
return *get();
}
......@@ -154,7 +154,7 @@ class propagate_const {
return *get();
}
constexpr element_type* operator->() {
FOLLY_CPP14_CONSTEXPR element_type* operator->() {
return get();
}
......@@ -167,7 +167,7 @@ class propagate_const {
typename = _t<std::enable_if<
std::is_pointer<OtherPointer>::value ||
std::is_convertible<OtherPointer, element_type*>::value>>>
constexpr operator element_type*() {
FOLLY_CPP14_CONSTEXPR operator element_type*() {
return get();
}
......@@ -183,13 +183,15 @@ class propagate_const {
private:
friend Pointer& get_underlying<>(propagate_const&);
friend Pointer const& get_underlying<>(propagate_const const&);
template <typename OtherPointer>
friend class propagate_const;
template <typename T>
static T* get_(T* t) {
constexpr static T* get_(T* t) {
return t;
}
template <typename T>
static auto get_(T& t) -> decltype(t.get()) {
constexpr static auto get_(T& t) -> decltype(t.get()) {
return t.get();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment