diff --git a/modules/flann/include/opencv2/flann/any.h b/modules/flann/include/opencv2/flann/any.h index f5684e9962..4906fec081 100644 --- a/modules/flann/include/opencv2/flann/any.h +++ b/modules/flann/include/opencv2/flann/any.h @@ -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