From 027efc43588bffbec1b24c18e59abd70579e8557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Fri, 5 Nov 2021 13:25:54 +0100 Subject: [PATCH] Work around Clang's incomplete C++20 support for omitting typename --- .../include/stratosphere/sf/sf_object_impl_factory.hpp | 2 +- .../include/stratosphere/tipc/tipc_server_manager.hpp | 2 +- .../include/vapours/util/util_intrusive_red_black_tree.hpp | 2 +- libraries/libvapours/include/vapours/util/util_optional.hpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/libstratosphere/include/stratosphere/sf/sf_object_impl_factory.hpp b/libraries/libstratosphere/include/stratosphere/sf/sf_object_impl_factory.hpp index 6c442fac2..c0fb5a60b 100644 --- a/libraries/libstratosphere/include/stratosphere/sf/sf_object_impl_factory.hpp +++ b/libraries/libstratosphere/include/stratosphere/sf/sf_object_impl_factory.hpp @@ -31,7 +31,7 @@ namespace ams::sf { public: class Object; using Allocator = StatelessDummyAllocator; - using StatelessAllocator = typename Policy::StatelessAllocator; + using StatelessAllocator = typename Policy::template StatelessAllocator; class Object final : private ::ams::sf::impl::ServiceObjectImplBase2, public Base { NON_COPYABLE(Object); diff --git a/libraries/libstratosphere/include/stratosphere/tipc/tipc_server_manager.hpp b/libraries/libstratosphere/include/stratosphere/tipc/tipc_server_manager.hpp index 53c6b3f95..951de4db8 100644 --- a/libraries/libstratosphere/include/stratosphere/tipc/tipc_server_manager.hpp +++ b/libraries/libstratosphere/include/stratosphere/tipc/tipc_server_manager.hpp @@ -747,7 +747,7 @@ namespace ams::tipc { using PortManager = PortManagerImpl; private: PortManager m_port_manager; - PortInfo::Allocator m_port_allocator; + typename PortInfo::Allocator m_port_allocator; public: constexpr ServerManagerImpl() : m_port_manager(), m_port_allocator() { /* ... */ } diff --git a/libraries/libvapours/include/vapours/util/util_intrusive_red_black_tree.hpp b/libraries/libvapours/include/vapours/util/util_intrusive_red_black_tree.hpp index f22f8ea68..00a7201e3 100644 --- a/libraries/libvapours/include/vapours/util/util_intrusive_red_black_tree.hpp +++ b/libraries/libvapours/include/vapours/util/util_intrusive_red_black_tree.hpp @@ -295,7 +295,7 @@ namespace ams::util { private: constexpr explicit ALWAYS_INLINE Iterator(ImplIterator it) : m_impl(it) { /* ... */ } - constexpr explicit ALWAYS_INLINE Iterator(ImplIterator::pointer p) : m_impl(p) { /* ... */ } + constexpr explicit ALWAYS_INLINE Iterator(typename ImplIterator::pointer p) : m_impl(p) { /* ... */ } constexpr ALWAYS_INLINE ImplIterator GetImplIterator() const { return m_impl; diff --git a/libraries/libvapours/include/vapours/util/util_optional.hpp b/libraries/libvapours/include/vapours/util/util_optional.hpp index f5f0e9e32..873c1a1b3 100644 --- a/libraries/libvapours/include/vapours/util/util_optional.hpp +++ b/libraries/libvapours/include/vapours/util/util_optional.hpp @@ -225,7 +225,7 @@ namespace ams::util { template class OptionalBaseImpl { protected: - using StoredType = std::remove_const::type; + using StoredType = std::remove_const_t; template constexpr void ConstructImpl(Args &&... args) { static_cast(this)->m_payload.Construct(std::forward(args)...); }