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 |
|