From 513d5640cf2781ccf51ab577babc1cd243aece3a Mon Sep 17 00:00:00 2001 From: z30053694 Date: Tue, 3 Jun 2025 10:59:02 +0800 Subject: [PATCH] fix: using explicit specialization for static member variable of class template Signed-off-by: z30053694 Change-Id: Id9333f9c84ac99a77f718377b2af352fb5b52e34 --- services/native/include/power_mgr_service.h | 3 +++ services/native/src/power_mgr_service.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/services/native/include/power_mgr_service.h b/services/native/include/power_mgr_service.h index 0741f57d..7bb390f2 100644 --- a/services/native/include/power_mgr_service.h +++ b/services/native/include/power_mgr_service.h @@ -44,6 +44,9 @@ namespace OHOS { namespace PowerMgr { +// Explicit specialization declaration. The class has been forward-declared in some of the headers. +// Visible for TUs that include this header. +template<> sptr DelayedSpSingleton::instance_; #ifdef POWER_MANAGER_ENABLE_CHARGING_TYPE_SETTING enum class PowerConnectStatus : int32_t { POWER_CONNECT_INVALID = -1, diff --git a/services/native/src/power_mgr_service.cpp b/services/native/src/power_mgr_service.cpp index f5b3c563..db60655c 100644 --- a/services/native/src/power_mgr_service.cpp +++ b/services/native/src/power_mgr_service.cpp @@ -64,6 +64,8 @@ using namespace OHOS::AppExecFwk; using namespace OHOS::AAFwk; namespace OHOS { namespace PowerMgr { +// Explicit specialization definition(an initializer is required for it to be a definition) +template<> sptr DelayedSpSingleton::instance_ {}; namespace { MODULE_MGR *g_moduleMgr = nullptr; #if (defined(__aarch64__) || defined(__x86_64__)) -- Gitee