--- a/boost/regex/v5/mem_block_cache.hpp
+++ b/boost/regex/v5/mem_block_cache.hpp
@@ -85,10 +85,10 @@ struct mem_block_node
 struct mem_block_cache
 {
    // this member has to be statically initialsed:
-   mem_block_node* next;
-   unsigned cached_blocks;
+   mem_block_node* next { nullptr };
+   unsigned cached_blocks { 0 };
 #ifdef BOOST_HAS_THREADS
-   boost::static_mutex mut;
+   std::mutex mut;
 #endif
 
    ~mem_block_cache()
@@ -133,11 +133,7 @@ struct mem_block_cache
    }
    static mem_block_cache& instance()
    {
-#ifdef BOOST_HAS_THREADS
-      static mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, };
-#else
-      static mem_block_cache block_cache = { 0, 0, };
-#endif
+      static mem_block_cache block_cache;
       return block_cache;
    }
 };