Blame include/cppunit/tools/StringHelper.h

Packit 8c9aa0
#ifndef CPPUNIT_TOOLS_STRINGHELPER_H
Packit 8c9aa0
#define CPPUNIT_TOOLS_STRINGHELPER_H
Packit 8c9aa0
Packit 8c9aa0
#include <cppunit/Portability.h>
Packit 8c9aa0
#include <cppunit/portability/Stream.h>
Packit 8c9aa0
#include <string>
Packit 8c9aa0
#include <type_traits>
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_BEGIN
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
/*! \brief Methods for converting values to strings. Replaces CPPUNIT_NS::StringTools::toString
Packit 8c9aa0
 */
Packit 8c9aa0
namespace StringHelper
Packit 8c9aa0
{
Packit 8c9aa0
Packit 8c9aa0
// work around to handle C++11 enum class correctly. We need an own conversion to std::string
Packit 8c9aa0
// as there is no implicit coversion to int for enum class.
Packit 8c9aa0
Packit 8c9aa0
template<typename T>
Packit 8c9aa0
typename std::enable_if::value, std::string>::type toString(const T& x)
Packit 8c9aa0
{
Packit 8c9aa0
    OStringStream ost;
Packit 8c9aa0
    ost << x;
Packit 8c9aa0
Packit 8c9aa0
    return ost.str();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
template<typename T>
Packit 8c9aa0
typename std::enable_if<std::is_enum<T>::value, std::string>::type toString(const T& x)
Packit 8c9aa0
{
Packit 8c9aa0
    OStringStream ost;
Packit 8c9aa0
    ost << static_cast<typename std::underlying_type<T>::type>(x);
Packit 8c9aa0
Packit 8c9aa0
    return ost.str();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_END
Packit 8c9aa0
Packit 8c9aa0
#endif  // CPPUNIT_TOOLS_STRINGHELPER_H
Packit 8c9aa0