diff --git a/doc/Doxygen/Doxyfile b/doc/Doxygen/Doxyfile
index 1a3ceffdd3a842bdf539544e18b33d9cee63d992..f8079abb1303b93368f1cdeebe89491a4b80ebfa 100644
--- a/doc/Doxygen/Doxyfile
+++ b/doc/Doxygen/Doxyfile
@@ -816,7 +816,8 @@ RECURSIVE              = YES
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE                =
+# Avoid duplicate entries that would arise from OSspecific/MSwindows
+EXCLUDE                = $(WM_PROJECT_DIR)/src/OSspecific/MSwindows
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
diff --git a/etc/codeTemplates/source/_Template.H b/etc/codeTemplates/source/_Template.H
index a9c19e50f7752ebb972bb7b035d9be964df27c64..4cbc6bb3af264d88bcbb3349179b8fc00c3e06ed 100644
--- a/etc/codeTemplates/source/_Template.H
+++ b/etc/codeTemplates/source/_Template.H
@@ -62,7 +62,7 @@ class CLASSNAME
 :
     public baseClassName
 {
-    // Private data
+    // Private Data
 
         //- Description of data_
         dataType data_;
@@ -79,12 +79,24 @@ class CLASSNAME
 
 public:
 
-    // Static data members
+    // Static Data Members
 
         //- Static data staticData
         static const dataType staticData;
 
 
+    // Generated Methods
+
+//        //- Construct null
+//        CLASSNAME() = default;
+//
+//        //- Copy construct
+//        CLASSNAME(const CLASSNAME&) = default;
+//
+//        //- Copy assignment
+//        CLASSNAME& operator=(const CLASSNAME&) = default;
+
+
     // Constructors
 
         //- Construct null
@@ -112,13 +124,13 @@ public:
 
     // Member Functions
 
-        // Access
+    // Access
 
-        // Check
+    // Check
 
-        // Edit
+    // Edit
 
-        // Write
+    // Write
 
 
     // Member Operators
diff --git a/etc/codeTemplates/template/_TemplateTemplate.H b/etc/codeTemplates/template/_TemplateTemplate.H
index 43b63c3c4009ef62bba2e6673795d99726db5161..7d6500b666e5ab11081e1e221e7faa07ac92d24e 100644
--- a/etc/codeTemplates/template/_TemplateTemplate.H
+++ b/etc/codeTemplates/template/_TemplateTemplate.H
@@ -67,7 +67,7 @@ class CLASSNAME
 :
     public baseClassName
 {
-    // Private data
+    // Private Data
 
         dataType data_;
 
@@ -83,11 +83,22 @@ class CLASSNAME
 
 public:
 
-    // Static data members
+    // Static Data Members
 
         //- Static data someStaticData
         static const dataType staticData;
 
+    // Generated Methods
+
+//        //- Construct null
+//        CLASSNAME() = default;
+//
+//        //- Copy construct
+//        CLASSNAME(const CLASSNAME&) = default;
+//
+//        //- Copy assignment
+//        CLASSNAME& operator=(const CLASSNAME&) = default;
+
 
     // Constructors
 
diff --git a/src/OSspecific/MSwindows/fileStat/fileStat.H b/src/OSspecific/MSwindows/fileStat/fileStat.H
index c8e3ea550f5e7c378fde1ac599c0084820fd3fa9..9912155211d799403afc5ddd4a0d1657f93d56a2 100644
--- a/src/OSspecific/MSwindows/fileStat/fileStat.H
+++ b/src/OSspecific/MSwindows/fileStat/fileStat.H
@@ -159,14 +159,6 @@ public:
 
         friend Istream& operator>>(Istream& is, fileStat& fs);
         friend Ostream& operator<<(Ostream& os, const fileStat& fs);
-
-
-    // Housekeeping
-
-        //- Deprecated(2019-04) Was file-stat successful?
-        //  \deprecated(2019-04) - use valid() method
-        bool isValid() const { return valid_; }
-
 };
 
 
diff --git a/src/OSspecific/POSIX/fileStat/fileStat.H b/src/OSspecific/POSIX/fileStat/fileStat.H
index c8e3ea550f5e7c378fde1ac599c0084820fd3fa9..9912155211d799403afc5ddd4a0d1657f93d56a2 100644
--- a/src/OSspecific/POSIX/fileStat/fileStat.H
+++ b/src/OSspecific/POSIX/fileStat/fileStat.H
@@ -159,14 +159,6 @@ public:
 
         friend Istream& operator>>(Istream& is, fileStat& fs);
         friend Ostream& operator<<(Ostream& os, const fileStat& fs);
-
-
-    // Housekeeping
-
-        //- Deprecated(2019-04) Was file-stat successful?
-        //  \deprecated(2019-04) - use valid() method
-        bool isValid() const { return valid_; }
-
 };
 
 
diff --git a/src/OSspecific/POSIX/regExp/regExpPosix.H b/src/OSspecific/POSIX/regExp/regExpPosix.H
index 09074d5fda582f76ba21409b533f3a7501c693e9..ea34fa8b8c57d40bef72ff1dcbf4cc55323f75fb 100644
--- a/src/OSspecific/POSIX/regExp/regExpPosix.H
+++ b/src/OSspecific/POSIX/regExp/regExpPosix.H
@@ -33,10 +33,21 @@ Description
     The PCRE '(?i)' extension is provided to compile the regular expression
     as being case-insensitive.
 
-See also
+SeeAlso
     The manpage regex(7) for more information about POSIX regular expressions.
     These differ somewhat from \c Perl and \c sed regular expressions.
 
+SeeAlso
+    Foam::regExp and Foam::regExpCxx
+
+Warning
+    This class should not be used directly.
+    Use the Foam::regExp typedef instead.
+
+\deprecated
+    This class will be superseded by Foam::regExpCxx as compiler support
+    for regular expressions continues to improve.
+
 SourceFiles
     regExpPosixI.H
     regExpPosix.C
@@ -49,13 +60,6 @@ SourceFiles
 #include <regex.h>
 #include <string>
 
-// Transitional feature - support std::smatch as per C++11 regex
-#undef Foam_regExpPosix_cxx
-
-#ifdef Foam_regExpPosix_cxx
-#include <regex>
-#endif
-
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -80,18 +84,13 @@ public:
 
     // Public Types
 
-        #ifdef Foam_regExpPosix_cxx
-        //- Type for matches, as per C++11 regex
-        typedef std::smatch results_type;
-        #else
-        //- Type for matches, use OpenFOAM SubStrings container
+        //- Type for matches - similar to std::smatch
         typedef SubStrings<std::string> results_type;
-        #endif
 
 
     // Static Member Data
 
-        //- The default grammar (unused) - for future-compatibility
+        //- Grammar (unused) - for compatibility with Foam::regExpCxx
         static int grammar;
 
 
diff --git a/src/OpenFOAM/primitives/strings/regex/regExpCxx.H b/src/OpenFOAM/primitives/strings/regex/regExpCxx.H
index 05229123475f4adde86dbccd4a37140e55ca196d..6bc3735a23eb16fb92b972b36774e553d228ec07 100644
--- a/src/OpenFOAM/primitives/strings/regex/regExpCxx.H
+++ b/src/OpenFOAM/primitives/strings/regex/regExpCxx.H
@@ -45,6 +45,10 @@ Note
     For example, gcc 4.8 is known to fail.
     For these systems the POSIX implementation or alternative must be used.
 
+Warning
+    This class should not be used directly.
+    Use the Foam::regExp typedef instead.
+
 SourceFiles
     regExpCxxI.H
     regExpCxx.C
@@ -209,7 +213,6 @@ public:
         //- Assign and compile pattern from string.
         //  Matching is case sensitive.
         inline void operator=(const std::string& pattern);
-
 };
 
 
diff --git a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
index 08b762a575aa026583f419d913759916fc4fb61b..0f9d181c2e8f597cc25888e5b66ec25fcd847290 100644
--- a/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
+++ b/src/OpenFOAM/primitives/strings/stringOps/stringOps.C
@@ -203,7 +203,7 @@ static void expandLeading(std::string& s)
             }
             else if (s[1] == '/')
             {
-                s.std::string::replace(0, 1, cwd());
+                s.replace(0, 1, cwd());
             }
             break;
         }
@@ -651,13 +651,7 @@ static void expandString
                     )
                 );
 
-                s.std::string::replace
-                (
-                    replaceBeg,
-                    varBeg - replaceBeg,
-                    varValue
-                );
-
+                s.replace(replaceBeg, varBeg - replaceBeg, varValue);
                 varBeg = replaceBeg+varValue.size();
             }
             else
@@ -677,12 +671,7 @@ static void expandString
                     )
                 );
 
-                s.std::string::replace
-                (
-                    varBeg,
-                    varName.size()+1,
-                    varValue
-                );
+                s.replace(varBeg, varName.size()+1, varValue);
                 varBeg += varValue.size();
             }
         }
@@ -842,29 +831,19 @@ void Foam::stringOps::inplaceExpand
                     // Found and ":+" alternative
                     // Not-found and ":-" alternative
 
-                    s.std::string::replace
-                    (
-                        varBeg,
-                        varEnd - varBeg + 1,
-                        altValue
-                    );
+                    s.replace(varBeg, varEnd - varBeg + 1, altValue);
                     varBeg += altValue.size();
                 }
                 else if (fnd.found())
                 {
                     // Found: use value
-                    s.std::string::replace
-                    (
-                        varBeg,
-                        varEnd - varBeg + 1,
-                        *fnd
-                    );
+                    s.replace(varBeg, varEnd - varBeg + 1, *fnd);
                     varBeg += (*fnd).size();
                 }
                 else
                 {
                     // Not-found: empty value
-                    s.std::string::erase(varBeg, varEnd - varBeg + 1);
+                    s.erase(varBeg, varEnd - varBeg + 1);
                 }
             }
         }