From 3ee4aa01e5832a49b183c56f244a49dfd2e87ce0 Mon Sep 17 00:00:00 2001 From: Jevan Saks Date: Wed, 4 Dec 2019 14:12:44 -0800 Subject: [PATCH] Refactor tracker_ref a little to avoid Internal Compiler Error in VS 16.4 (#1716) --- dev/inc/tracker_ref.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/dev/inc/tracker_ref.h b/dev/inc/tracker_ref.h index d2f00930ad..853213a1fb 100644 --- a/dev/inc/tracker_ref.h +++ b/dev/inc/tracker_ref.h @@ -3,6 +3,8 @@ #pragma once +#include "SharedHelpers.h" + struct __declspec(novtable) ITrackerHandleManager { virtual ~ITrackerHandleManager() = default; @@ -78,13 +80,6 @@ struct __declspec(novtable) ITrackerHandleManager bool m_wasEnsureCalled{}; #endif - // Specifies if this instance is composed by an outer object. - // Only returns true if this is an AggregableComObject instance. - virtual bool IsComposed() - { - return false; - } - protected: ::ITrackerOwner* m_trackerOwnerInnerNoRef{ nullptr }; }; @@ -128,9 +123,10 @@ enum class TrackerRefFallback FallbackToComPtrBeforeRS4 }; -template> +template class tracker_ref sealed { + using IUnknownAccessorT = typename IUnknownAccessor; public: explicit tracker_ref(const ITrackerHandleManager* owner) {