Remove static initializers caused by templated static member.
authorJake Staahl <jstaahl@snapchat.com>
Fri, 7 May 2021 19:48:01 +0000 (12:48 -0700)
committerJake Staahl <jstaahl@snapchat.com>
Fri, 7 May 2021 19:53:14 +0000 (12:53 -0700)
modules/flann/include/opencv2/flann/any.h

index f5684e9..4906fec 100644 (file)
@@ -167,17 +167,15 @@ class SinglePolicy
 
 public:
     static base_any_policy* get_policy();
-
-private:
-    static typename choose_policy<T>::type policy;
 };
 
-template <typename T>
-typename choose_policy<T>::type SinglePolicy<T>::policy;
-
 /// This function will return a different policy for each type.
 template <typename T>
-inline base_any_policy* SinglePolicy<T>::get_policy() { return &policy; }
+inline base_any_policy* SinglePolicy<T>::get_policy()
+{
+    static typename choose_policy<T>::type policy;
+    return &policy;
+}
 
 } // namespace anyimpl