Enabled c++11 tests in approvals
diff --git a/projects/SelfTest/ApproxTests.cpp b/projects/SelfTest/ApproxTests.cpp
index e4bc6ec..bb6abff 100644
--- a/projects/SelfTest/ApproxTests.cpp
+++ b/projects/SelfTest/ApproxTests.cpp
@@ -166,11 +166,7 @@
     return os << "StrongDoubleTypedef(" << static_cast<double>(td) << ")";
 }
 
-TEST_CASE
-(
- "Comparison with explicitly convertible types",
- "[Approx][c++11]"
-)
+TEST_CASE( "Comparison with explicitly convertible types", "[Approx]" )
 {
   StrongDoubleTypedef td(10.0);
 
diff --git a/projects/SelfTest/Baselines/console.std.approved.txt b/projects/SelfTest/Baselines/console.std.approved.txt
index 7a4c832..2b41e42 100644
--- a/projects/SelfTest/Baselines/console.std.approved.txt
+++ b/projects/SelfTest/Baselines/console.std.approved.txt
@@ -1001,7 +1001,23 @@
 with expansion:
   "first" == "second"
 
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>: FAILED:
+  CHECK( ::Catch::Detail::stringify(e0) == "0" )
+with expansion:
+  "{?}" == "0"
+
+EnumToString.cpp:<line number>: FAILED:
+  CHECK( ::Catch::Detail::stringify(e1) == "1" )
+with expansion:
+  "{?}" == "1"
+
 ===============================================================================
-test cases: 173 | 123 passed | 46 failed |  4 failed as expected
-assertions: 907 | 792 passed | 94 failed | 21 failed as expected
+test cases: 186 | 135 passed | 47 failed |  4 failed as expected
+assertions: 939 | 822 passed | 96 failed | 21 failed as expected
 
diff --git a/projects/SelfTest/Baselines/console.sw.approved.txt b/projects/SelfTest/Baselines/console.sw.approved.txt
index 17f5fc6..0857fc2 100644
--- a/projects/SelfTest/Baselines/console.sw.approved.txt
+++ b/projects/SelfTest/Baselines/console.sw.approved.txt
@@ -924,6 +924,84 @@
   0x<hex digits>
 
 -------------------------------------------------------------------------------
+Comparison with explicitly convertible types
+-------------------------------------------------------------------------------
+ApproxTests.cpp:<line number>
+...............................................................................
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td == Approx(10.0) )
+with expansion:
+  StrongDoubleTypedef(10) == Approx( 10.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(10.0) == td )
+with expansion:
+  Approx( 10.0 ) == StrongDoubleTypedef(10)
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td != Approx(11.0) )
+with expansion:
+  StrongDoubleTypedef(10) != Approx( 11.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(11.0) != td )
+with expansion:
+  Approx( 11.0 ) != StrongDoubleTypedef(10)
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td <= Approx(10.0) )
+with expansion:
+  StrongDoubleTypedef(10) <= Approx( 10.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td <= Approx(11.0) )
+with expansion:
+  StrongDoubleTypedef(10) <= Approx( 11.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(10.0) <= td )
+with expansion:
+  Approx( 10.0 ) <= StrongDoubleTypedef(10)
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(9.0) <= td )
+with expansion:
+  Approx( 9.0 ) <= StrongDoubleTypedef(10)
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td >= Approx(9.0) )
+with expansion:
+  StrongDoubleTypedef(10) >= Approx( 9.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( td >= Approx(10.0) )
+with expansion:
+  StrongDoubleTypedef(10) >= Approx( 10.0 )
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(10.0) >= td )
+with expansion:
+  Approx( 10.0 ) >= StrongDoubleTypedef(10)
+
+ApproxTests.cpp:<line number>:
+PASSED:
+  REQUIRE( Approx(11.0) >= td )
+with expansion:
+  Approx( 11.0 ) >= StrongDoubleTypedef(10)
+
+-------------------------------------------------------------------------------
 Comparisons between ints where one side is computed
 -------------------------------------------------------------------------------
 ConditionTests.cpp:<line number>
@@ -8060,6 +8138,20 @@
   Previous info should not be seen
 
 -------------------------------------------------------------------------------
+long long
+-------------------------------------------------------------------------------
+MiscTests.cpp:<line number>
+...............................................................................
+
+MiscTests.cpp:<line number>:
+PASSED:
+  REQUIRE( l == std::numeric_limits<long long>::max() )
+with expansion:
+  9223372036854775807 (0x<hex digits>)
+  ==
+  9223372036854775807 (0x<hex digits>)
+
+-------------------------------------------------------------------------------
 looped SECTION tests
   s1
 -------------------------------------------------------------------------------
@@ -8249,6 +8341,18 @@
   {null string} == {null string}
 
 -------------------------------------------------------------------------------
+null_ptr
+-------------------------------------------------------------------------------
+TrickyTests.cpp:<line number>
+...............................................................................
+
+TrickyTests.cpp:<line number>:
+PASSED:
+  REQUIRE( ptr.get() == 0 )
+with expansion:
+  0 == 0
+
+-------------------------------------------------------------------------------
 pair<pair<int,const char *,pair<std::string,int> > -> toString
 -------------------------------------------------------------------------------
 ToStringPair.cpp:<line number>
@@ -8616,6 +8720,48 @@
   "{ StringMaker<has_maker> }"
 
 -------------------------------------------------------------------------------
+toString(enum class w/operator<<)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>:
+PASSED:
+  CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" )
+with expansion:
+  "E2/V0" == "E2/V0"
+
+EnumToString.cpp:<line number>:
+PASSED:
+  CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" )
+with expansion:
+  "E2/V1" == "E2/V1"
+
+EnumToString.cpp:<line number>:
+PASSED:
+  CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" )
+with expansion:
+  "Unknown enum value 10"
+  ==
+  "Unknown enum value 10"
+
+-------------------------------------------------------------------------------
+toString(enum class)
+-------------------------------------------------------------------------------
+EnumToString.cpp:<line number>
+...............................................................................
+
+EnumToString.cpp:<line number>: FAILED:
+  CHECK( ::Catch::Detail::stringify(e0) == "0" )
+with expansion:
+  "{?}" == "0"
+
+EnumToString.cpp:<line number>: FAILED:
+  CHECK( ::Catch::Detail::stringify(e1) == "1" )
+with expansion:
+  "{?}" == "1"
+
+-------------------------------------------------------------------------------
 toString(enum w/operator<<)
 -------------------------------------------------------------------------------
 EnumToString.cpp:<line number>
@@ -8652,6 +8798,140 @@
   "1" == "1"
 
 -------------------------------------------------------------------------------
+tuple<>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ }" == ::Catch::Detail::stringify(type{}) )
+with expansion:
+  "{ }" == "{ }"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ }" == ::Catch::Detail::stringify(value) )
+with expansion:
+  "{ }" == "{ }"
+
+-------------------------------------------------------------------------------
+tuple<float,int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) )
+with expansion:
+  "1.2f" == "1.2f"
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) )
+with expansion:
+  "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+
+-------------------------------------------------------------------------------
+tuple<int>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) )
+with expansion:
+  "{ 0 }" == "{ 0 }"
+
+-------------------------------------------------------------------------------
+tuple<0,int,const char *>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) )
+with expansion:
+  "{ 0, 42, "Catch me" }"
+  ==
+  "{ 0, 42, "Catch me" }"
+
+-------------------------------------------------------------------------------
+tuple<string,string>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) )
+with expansion:
+  "{ "hello", "world" }"
+  ==
+  "{ "hello", "world" }"
+
+-------------------------------------------------------------------------------
+tuple<tuple<int>,tuple<>,float>
+-------------------------------------------------------------------------------
+ToStringTuple.cpp:<line number>
+...............................................................................
+
+ToStringTuple.cpp:<line number>:
+PASSED:
+  CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) )
+with expansion:
+  "{ { 42 }, { }, 1.2f }"
+  ==
+  "{ { 42 }, { }, 1.2f }"
+
+-------------------------------------------------------------------------------
+vec<vec<string,alloc>> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+  REQUIRE( ::Catch::Detail::stringify(v) == "{  }" )
+with expansion:
+  "{  }" == "{  }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+  REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" )
+with expansion:
+  "{ { "hello" }, { "world" } }"
+  ==
+  "{ { "hello" }, { "world" } }"
+
+-------------------------------------------------------------------------------
+vector<int,allocator> -> toString
+-------------------------------------------------------------------------------
+ToStringVector.cpp:<line number>
+...............................................................................
+
+ToStringVector.cpp:<line number>:
+PASSED:
+  REQUIRE( ::Catch::Detail::stringify(vv) == "{  }" )
+with expansion:
+  "{  }" == "{  }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
+with expansion:
+  "{ 42 }" == "{ 42 }"
+
+ToStringVector.cpp:<line number>:
+PASSED:
+  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
+with expansion:
+  "{ 42, 250 }" == "{ 42, 250 }"
+
+-------------------------------------------------------------------------------
 vector<int> -> toString
 -------------------------------------------------------------------------------
 ToStringVector.cpp:<line number>
@@ -8884,6 +9164,6 @@
 PASSED:
 
 ===============================================================================
-test cases: 173 | 122 passed | 47 failed |  4 failed as expected
-assertions: 909 | 792 passed | 96 failed | 21 failed as expected
+test cases: 186 | 134 passed | 48 failed |  4 failed as expected
+assertions: 941 | 822 passed | 98 failed | 21 failed as expected
 
diff --git a/projects/SelfTest/Baselines/junit.sw.approved.txt b/projects/SelfTest/Baselines/junit.sw.approved.txt
index df8d91e..6f09f33 100644
--- a/projects/SelfTest/Baselines/junit.sw.approved.txt
+++ b/projects/SelfTest/Baselines/junit.sw.approved.txt
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <testsuitesspanner>
-  <testsuite name="<exe-name>" errors="15" failures="82" tests="910" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
+  <testsuite name="<exe-name>" errors="15" failures="84" tests="942" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
     <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="#748 - captures with unexpected exceptions/outside assertions" time="{duration}">
       <error type="TEST_CASE">
@@ -112,6 +112,7 @@
     <testcase classname="<exe-name>.global" name="Commas in various macros are allowed" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="Comparing function pointers" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="Comparing member function pointers" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="Comparison with explicitly convertible types" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="Comparisons between ints where one side is computed" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="Comparisons with int literals don't warn when mixing signed/ unsigned" time="{duration}"/>
@@ -692,6 +693,7 @@
 MessageTests.cpp:<line number>
       </failure>
     </testcase>
+    <testcase classname="<exe-name>.global" name="long long" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="looped SECTION tests/s1" time="{duration}">
       <failure message="0 > 1" type="CHECK">
 MiscTests.cpp:<line number>
@@ -735,6 +737,7 @@
     <testcase classname="<exe-name>.global" name="non streamable - with conv. op" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="not allowed" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="null strings" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="null_ptr" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="pointer to class" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="random SECTION tests/s1" time="{duration}"/>
@@ -775,8 +778,25 @@
     <testcase classname="<exe-name>.global" name="toString on wchar_t const pointer returns the string contents" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="toString on wchar_t returns the string contents" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="toString( vectors&lt;has_maker )" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="toString(enum class w/operator&lt;&lt;)" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="toString(enum class)" time="{duration}">
+      <failure message="&quot;{?}&quot; == &quot;0&quot;" type="CHECK">
+EnumToString.cpp:<line number>
+      </failure>
+      <failure message="&quot;{?}&quot; == &quot;1&quot;" type="CHECK">
+EnumToString.cpp:<line number>
+      </failure>
+    </testcase>
     <testcase classname="<exe-name>.global" name="toString(enum w/operator&lt;&lt;)" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="toString(enum)" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;float,int>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;int>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;0,int,const char *>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;string,string>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="vec&lt;vec&lt;string,alloc>> -> toString" time="{duration}"/>
+    <testcase classname="<exe-name>.global" name="vector&lt;int,allocator> -> toString" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="vector&lt;int> -> toString" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="vector&lt;string> -> toString" time="{duration}"/>
     <testcase classname="<exe-name>.global" name="vectors can be sized and resized" time="{duration}"/>
diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt
index 1f7e73f..adbdba8 100644
--- a/projects/SelfTest/Baselines/xml.sw.approved.txt
+++ b/projects/SelfTest/Baselines/xml.sw.approved.txt
@@ -1029,6 +1029,105 @@
       </Expression>
       <OverallResult success="true"/>
     </TestCase>
+    <TestCase name="Comparison with explicitly convertible types" tags="[Approx]" filename="projects/<exe-name>/ApproxTests.cpp" >
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td == Approx(10.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) == Approx( 10.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(10.0) == td
+        </Original>
+        <Expanded>
+          Approx( 10.0 ) == StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td != Approx(11.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) != Approx( 11.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(11.0) != td
+        </Original>
+        <Expanded>
+          Approx( 11.0 ) != StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td &lt;= Approx(10.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) &lt;= Approx( 10.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td &lt;= Approx(11.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) &lt;= Approx( 11.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(10.0) &lt;= td
+        </Original>
+        <Expanded>
+          Approx( 10.0 ) &lt;= StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(9.0) &lt;= td
+        </Original>
+        <Expanded>
+          Approx( 9.0 ) &lt;= StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td >= Approx(9.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) >= Approx( 9.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          td >= Approx(10.0)
+        </Original>
+        <Expanded>
+          StrongDoubleTypedef(10) >= Approx( 10.0 )
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(10.0) >= td
+        </Original>
+        <Expanded>
+          Approx( 10.0 ) >= StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ApproxTests.cpp" >
+        <Original>
+          Approx(11.0) >= td
+        </Original>
+        <Expanded>
+          Approx( 11.0 ) >= StrongDoubleTypedef(10)
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
     <TestCase name="Comparisons between ints where one side is computed" filename="projects/<exe-name>/ConditionTests.cpp" >
       <Expression success="true" type="CHECK" filename="projects/<exe-name>/ConditionTests.cpp" >
         <Original>
@@ -8927,6 +9026,19 @@
     <TestCase name="just info" tags="[info][isolated info][messages]" filename="projects/<exe-name>/MessageTests.cpp" >
       <OverallResult success="true"/>
     </TestCase>
+    <TestCase name="long long" filename="projects/<exe-name>/MiscTests.cpp" >
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/MiscTests.cpp" >
+        <Original>
+          l == std::numeric_limits&lt;long long>::max()
+        </Original>
+        <Expanded>
+          9223372036854775807 (0x<hex digits>)
+==
+9223372036854775807 (0x<hex digits>)
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
     <TestCase name="looped SECTION tests" tags="[.][failing][hide][sections]" filename="projects/<exe-name>/MiscTests.cpp" >
       <Section name="s1" description="b is currently: 0" filename="projects/<exe-name>/MiscTests.cpp" >
         <Expression success="false" type="CHECK" filename="projects/<exe-name>/MiscTests.cpp" >
@@ -9143,6 +9255,17 @@
       </Expression>
       <OverallResult success="true"/>
     </TestCase>
+    <TestCase name="null_ptr" tags="[Tricky]" filename="projects/<exe-name>/TrickyTests.cpp" >
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/TrickyTests.cpp" >
+        <Original>
+          ptr.get() == 0
+        </Original>
+        <Expanded>
+          0 == 0
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
     <TestCase name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString" tags="[pair][toString]" filename="projects/<exe-name>/ToStringPair.cpp" >
       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringPair.cpp" >
         <Original>
@@ -9512,6 +9635,54 @@
       </Expression>
       <OverallResult success="true"/>
     </TestCase>
+    <TestCase name="toString(enum class w/operator&lt;&lt;)" tags="[enum][enumClass][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(e0) == "E2/V0"
+        </Original>
+        <Expanded>
+          "E2/V0" == "E2/V0"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(e1) == "E2/V1"
+        </Original>
+        <Expanded>
+          "E2/V1" == "E2/V1"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(e3) == "Unknown enum value 10"
+        </Original>
+        <Expanded>
+          "Unknown enum value 10"
+==
+"Unknown enum value 10"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="toString(enum class)" tags="[enum][enumClass][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
+      <Expression success="false" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(e0) == "0"
+        </Original>
+        <Expanded>
+          "{?}" == "0"
+        </Expanded>
+      </Expression>
+      <Expression success="false" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(e1) == "1"
+        </Original>
+        <Expanded>
+          "{?}" == "1"
+        </Expanded>
+      </Expression>
+      <OverallResult success="false"/>
+    </TestCase>
     <TestCase name="toString(enum w/operator&lt;&lt;)" tags="[enum][toString]" filename="projects/<exe-name>/EnumToString.cpp" >
       <Expression success="true" type="CHECK" filename="projects/<exe-name>/EnumToString.cpp" >
         <Original>
@@ -9550,6 +9721,142 @@
       </Expression>
       <OverallResult success="true"/>
     </TestCase>
+    <TestCase name="tuple&lt;>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ }" == ::Catch::Detail::stringify(type{})
+        </Original>
+        <Expanded>
+          "{ }" == "{ }"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ }" == ::Catch::Detail::stringify(value)
+        </Original>
+        <Expanded>
+          "{ }" == "{ }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="tuple&lt;float,int>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "1.2f" == ::Catch::Detail::stringify(float(1.2))
+        </Original>
+        <Expanded>
+          "1.2f" == "1.2f"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0})
+        </Original>
+        <Expanded>
+          "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="tuple&lt;int>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ 0 }" == ::Catch::Detail::stringify(type{0})
+        </Original>
+        <Expanded>
+          "{ 0 }" == "{ 0 }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="tuple&lt;0,int,const char *>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value)
+        </Original>
+        <Expanded>
+          "{ 0, 42, "Catch me" }"
+==
+"{ 0, 42, "Catch me" }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="tuple&lt;string,string>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"})
+        </Original>
+        <Expanded>
+          "{ "hello", "world" }"
+==
+"{ "hello", "world" }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>" tags="[toString][tuple]" filename="projects/<exe-name>/ToStringTuple.cpp" >
+      <Expression success="true" type="CHECK" filename="projects/<exe-name>/ToStringTuple.cpp" >
+        <Original>
+          "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value)
+        </Original>
+        <Expanded>
+          "{ { 42 }, { }, 1.2f }"
+==
+"{ { 42 }, { }, 1.2f }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="vec&lt;vec&lt;string,alloc>> -> toString" tags="[toString][vector,allocator]" filename="projects/<exe-name>/ToStringVector.cpp" >
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(v) == "{  }"
+        </Original>
+        <Expanded>
+          "{  }" == "{  }"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }"
+        </Original>
+        <Expanded>
+          "{ { "hello" }, { "world" } }"
+==
+"{ { "hello" }, { "world" } }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
+    <TestCase name="vector&lt;int,allocator> -> toString" tags="[toString][vector,allocator]" filename="projects/<exe-name>/ToStringVector.cpp" >
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(vv) == "{  }"
+        </Original>
+        <Expanded>
+          "{  }" == "{  }"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(vv) == "{ 42 }"
+        </Original>
+        <Expanded>
+          "{ 42 }" == "{ 42 }"
+        </Expanded>
+      </Expression>
+      <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
+        <Original>
+          ::Catch::Detail::stringify(vv) == "{ 42, 250 }"
+        </Original>
+        <Expanded>
+          "{ 42, 250 }" == "{ 42, 250 }"
+        </Expanded>
+      </Expression>
+      <OverallResult success="true"/>
+    </TestCase>
     <TestCase name="vector&lt;int> -> toString" tags="[toString][vector]" filename="projects/<exe-name>/ToStringVector.cpp" >
       <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringVector.cpp" >
         <Original>
@@ -9769,7 +10076,7 @@
       </Section>
       <OverallResult success="true"/>
     </TestCase>
-    <OverallResults successes="792" failures="97" expectedFailures="21"/>
+    <OverallResults successes="822" failures="99" expectedFailures="21"/>
   </Group>
-  <OverallResults successes="792" failures="96" expectedFailures="21"/>
+  <OverallResults successes="822" failures="98" expectedFailures="21"/>
 </Catch>
diff --git a/projects/SelfTest/EnumToString.cpp b/projects/SelfTest/EnumToString.cpp
index eb80c74..7d18a29 100644
--- a/projects/SelfTest/EnumToString.cpp
+++ b/projects/SelfTest/EnumToString.cpp
@@ -28,7 +28,7 @@
 // Enum class without user-provided stream operator
 enum class EnumClass1 { EnumClass1Value0, EnumClass1Value1 };
 
-TEST_CASE( "toString(enum class)", "[toString][enum][enumClass][c++11][.]" ) {
+TEST_CASE( "toString(enum class)", "[toString][enum][enumClass]" ) {
     EnumClass1 e0 = EnumClass1::EnumClass1Value0;
     CHECK( ::Catch::Detail::stringify(e0) == "0" );
     EnumClass1 e1 = EnumClass1::EnumClass1Value1;
@@ -49,7 +49,7 @@
     }
 }
 
-TEST_CASE( "toString(enum class w/operator<<)", "[toString][enum][enumClass][c++11][.]" ) {
+TEST_CASE( "toString(enum class w/operator<<)", "[toString][enum][enumClass]" ) {
     EnumClass2 e0 = EnumClass2::EnumClass2Value0;
     CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" );
     EnumClass2 e1 = EnumClass2::EnumClass2Value1;
diff --git a/projects/SelfTest/MiscTests.cpp b/projects/SelfTest/MiscTests.cpp
index 9d83782..87381b0 100644
--- a/projects/SelfTest/MiscTests.cpp
+++ b/projects/SelfTest/MiscTests.cpp
@@ -372,7 +372,7 @@
     }
 }
 
-TEST_CASE( "long long", "[c++11][.]" ) {
+TEST_CASE( "long long" ) {
     long long l = std::numeric_limits<long long>::max();
 
     REQUIRE( l == std::numeric_limits<long long>::max() );
diff --git a/projects/SelfTest/ToStringTuple.cpp b/projects/SelfTest/ToStringTuple.cpp
index dcd1d80..330e427 100644
--- a/projects/SelfTest/ToStringTuple.cpp
+++ b/projects/SelfTest/ToStringTuple.cpp
@@ -2,7 +2,7 @@
 
 #include <tuple>
 
-TEST_CASE( "tuple<>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<>", "[toString][tuple]" )
 {
     typedef std::tuple<> type;
     CHECK( "{ }" == ::Catch::Detail::stringify(type{}) );
@@ -10,34 +10,34 @@
     CHECK( "{ }" == ::Catch::Detail::stringify(value) );
 }
 
-TEST_CASE( "tuple<int>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<int>", "[toString][tuple]" )
 {
     typedef std::tuple<int> type;
     CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) );
 }
 
 
-TEST_CASE( "tuple<float,int>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<float,int>", "[toString][tuple]" )
 {
     typedef std::tuple<float,int> type;
     CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) );
     CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) );
 }
 
-TEST_CASE( "tuple<string,string>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<string,string>", "[toString][tuple]" )
 {
     typedef std::tuple<std::string,std::string> type;
     CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) );
 }
 
-TEST_CASE( "tuple<tuple<int>,tuple<>,float>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<tuple<int>,tuple<>,float>", "[toString][tuple]" )
 {
     typedef std::tuple<std::tuple<int>,std::tuple<>,float> type;
     type value { std::tuple<int>{42}, {}, 1.2f };
     CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) );
 }
 
-TEST_CASE( "tuple<nullptr,int,const char *>", "[toString][tuple][c++11][.]" )
+TEST_CASE( "tuple<nullptr,int,const char *>", "[toString][tuple]" )
 {
     typedef std::tuple<std::nullptr_t,int,const char *> type;
     type value { nullptr, 42, "Catch me" };
diff --git a/projects/SelfTest/ToStringVector.cpp b/projects/SelfTest/ToStringVector.cpp
index c70872c..df9c55a 100644
--- a/projects/SelfTest/ToStringVector.cpp
+++ b/projects/SelfTest/ToStringVector.cpp
@@ -48,7 +48,7 @@
     };
 }
 
-TEST_CASE( "vector<int,allocator> -> toString", "[toString][vector,allocator][c++11][.]" ) {
+TEST_CASE( "vector<int,allocator> -> toString", "[toString][vector,allocator]" ) {
     std::vector<int,minimal_allocator<int> > vv;
     REQUIRE( ::Catch::Detail::stringify(vv) == "{  }" );
     vv.push_back( 42 );
@@ -57,7 +57,7 @@
     REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" );
 }
 
-TEST_CASE( "vec<vec<string,alloc>> -> toString", "[toString][vector,allocator][c++11][.]" ) {
+TEST_CASE( "vec<vec<string,alloc>> -> toString", "[toString][vector,allocator]" ) {
     using inner = std::vector<std::string, minimal_allocator<std::string>>;
     using vector = std::vector<inner>;
     vector v;
diff --git a/projects/SelfTest/TrickyTests.cpp b/projects/SelfTest/TrickyTests.cpp
index ca8c451..4ebb0f2 100644
--- a/projects/SelfTest/TrickyTests.cpp
+++ b/projects/SelfTest/TrickyTests.cpp
@@ -383,7 +383,7 @@
 
 #include <memory>
 
-TEST_CASE( "null_ptr", "[Tricky][c++11][.]" )
+TEST_CASE( "null_ptr", "[Tricky]" )
 {
     std::unique_ptr<int> ptr;
     REQUIRE(ptr.get() == nullptr);
diff --git a/scripts/approvalTests.py b/scripts/approvalTests.py
index 3b71be3..016997c 100755
--- a/scripts/approvalTests.py
+++ b/scripts/approvalTests.py
@@ -145,15 +145,15 @@
 print("  " + cmdPath)
 
 # Standard console reporter
-approve("console.std", ["~[c++11]~[!nonportable]", "--order", "lex"])
+approve("console.std", ["~[!nonportable]", "--order", "lex"])
 # console reporter, include passes, warn about No Assertions
-approve("console.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "--order", "lex"])
+approve("console.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "--order", "lex"])
 # console reporter, include passes, warn about No Assertions, limit failures to first 4
-approve("console.swa4", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"])
+approve("console.swa4", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"])
 # junit reporter, include passes, warn about No Assertions
-approve("junit.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"])
+approve("junit.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"])
 # xml reporter, include passes, warn about No Assertions
-approve("xml.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"])
+approve("xml.sw", ["~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"])
 
 if overallResult != 0:
     print("If these differences are expected, run approve.py to approve new baselines.")