[Libreoffice-commits] cppunit.git: include/cppunit

Markus Mohrhard markus.mohrhard at googlemail.com
Wed Dec 14 16:24:20 UTC 2016


 include/cppunit/TestAssert.h |   32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

New commits:
commit 9e22a4f7c7794ab1cbd808058c13356f38ed632a
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Wed Dec 14 17:23:38 2016 +0100

    simpler implementation for the enum class work around

diff --git a/include/cppunit/TestAssert.h b/include/cppunit/TestAssert.h
index 89f9209..d9f7299 100644
--- a/include/cppunit/TestAssert.h
+++ b/include/cppunit/TestAssert.h
@@ -23,29 +23,25 @@ namespace impl {
 
 // work around to handle C++11 enum class correctly. We need an own conversion to std::string
 // as there is no implicit coversion to int for enum class.
-template<typename T, typename Enable = void>
-struct toString
+
+template<typename T>
+typename std::enable_if<!std::is_enum<T>::value, std::string>::type toStringImpl(const T& x)
 {
-    static std::string toStringImpl(const T& x)
-    {
-        OStringStream ost;
-        ost << x;
+    OStringStream ost;
+    ost << x;
 
-        return ost.str();
-    }
-};
+    return ost.str();
+}
 
 template<typename T>
-struct toString<T, typename std::enable_if<std::is_enum<T>::value >::type>
+typename std::enable_if<std::is_enum<T>::value, std::string>::type toStringImpl(const T& x)
 {
-    static std::string toStringImpl(const T& x)
-    {
-        OStringStream ost;
-        ost << static_cast<typename std::underlying_type<T>::type>(x);
+    OStringStream ost;
+    ost << static_cast<typename std::underlying_type<T>::type>(x);
+
+    return ost.str();
+}
 
-        return ost.str();
-    }
-};
 
 }
 
@@ -102,7 +98,7 @@ struct assertion_traits
 
     static std::string toString( const T& x )
     {
-        return impl::toString<T>::toStringImpl(x);
+        return impl::toStringImpl(x);
     }
 };
 


More information about the Libreoffice-commits mailing list