Provide a polyfill over std::to_string

Android apparently does not support `std::to_string`, so we add a
small polyfill over it. Right now only the ULP matcher uses it,
but we have had plans to use it in `StringMaker<int>` and friends,
as it performs a lot better than `std::stringstream` based
stringification on MSVC.

See #1280 for more details
This commit is contained in:
Martin Hořeňovský
2018-05-09 20:16:27 +02:00
parent 6496c51c95
commit 0074926e5c
5 changed files with 53 additions and 2 deletions

View File

@@ -6,6 +6,7 @@
*/
#include "catch_matchers_floating.h"
#include "catch_to_string.hpp"
#include "catch_tostring.h"
#include <cstdlib>
@@ -115,7 +116,7 @@ namespace Floating {
}
std::string WithinUlpsMatcher::describe() const {
return "is within " + std::to_string(m_ulps) + " ULPs of " + ::Catch::Detail::stringify(m_target) + ((m_type == FloatingPointKind::Float)? "f" : "");
return "is within " + Catch::to_string(m_ulps) + " ULPs of " + ::Catch::Detail::stringify(m_target) + ((m_type == FloatingPointKind::Float)? "f" : "");
}
}// namespace Floating