diff options
author | Jim Flynn <jim.flynn@arm.com> | 2020-07-20 16:57:44 +0100 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2020-07-29 15:35:15 +0100 |
commit | bbfe603e5ae42317a2b67d713d00882bea341c88 (patch) | |
tree | 8d8a78d6836384fb92fb9741c865443624dfec68 /third-party | |
parent | a9c2ce123a6a5a68728d040a0323c482bbe46903 (diff) | |
download | armnn-bbfe603e5ae42317a2b67d713d00882bea341c88.tar.gz |
IVGCVSW-5166 Pull out the common and server side code into standalone libraries
Change-Id: I180f84c493a9b2be4b93b25d312ebdd9e71b1735
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'third-party')
-rw-r--r-- | third-party/fmt/src/format.cc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/third-party/fmt/src/format.cc b/third-party/fmt/src/format.cc new file mode 100644 index 0000000000..a64a1f3893 --- /dev/null +++ b/third-party/fmt/src/format.cc @@ -0,0 +1,69 @@ +// Formatting library for C++ +// +// Copyright (c) 2012 - 2016, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#include "fmt/format-inl.h" + +FMT_BEGIN_NAMESPACE +namespace detail { + +template <typename T> +int format_float(char* buf, std::size_t size, const char* format, int precision, + T value) { +#ifdef FMT_FUZZ + if (precision > 100000) + throw std::runtime_error( + "fuzz mode - avoid large allocation inside snprintf"); +#endif + // Suppress the warning about nonliteral format string. + int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; + return precision < 0 ? snprintf_ptr(buf, size, format, value) + : snprintf_ptr(buf, size, format, precision, value); +} +} // namespace detail + +template struct FMT_INSTANTIATION_DEF_API detail::basic_data<void>; + +// Workaround a bug in MSVC2013 that prevents instantiation of format_float. +int (*instantiate_format_float)(double, int, detail::float_specs, + detail::buffer<char>&) = detail::format_float; + +#ifndef FMT_STATIC_THOUSANDS_SEPARATOR +template FMT_API detail::locale_ref::locale_ref(const std::locale& loc); +template FMT_API std::locale detail::locale_ref::get<std::locale>() const; +#endif + +// Explicit instantiations for char. + +template FMT_API std::string detail::grouping_impl<char>(locale_ref); +template FMT_API char detail::thousands_sep_impl(locale_ref); +template FMT_API char detail::decimal_point_impl(locale_ref); + +template FMT_API void detail::buffer<char>::append(const char*, const char*); + +template FMT_API FMT_BUFFER_CONTEXT(char)::iterator detail::vformat_to( + detail::buffer<char>&, string_view, + basic_format_args<FMT_BUFFER_CONTEXT(char)>); + +template FMT_API int detail::snprintf_float(double, int, detail::float_specs, + detail::buffer<char>&); +template FMT_API int detail::snprintf_float(long double, int, + detail::float_specs, + detail::buffer<char>&); +template FMT_API int detail::format_float(double, int, detail::float_specs, + detail::buffer<char>&); +template FMT_API int detail::format_float(long double, int, detail::float_specs, + detail::buffer<char>&); + +// Explicit instantiations for wchar_t. + +template FMT_API std::string detail::grouping_impl<wchar_t>(locale_ref); +template FMT_API wchar_t detail::thousands_sep_impl(locale_ref); +template FMT_API wchar_t detail::decimal_point_impl(locale_ref); + +template FMT_API void detail::buffer<wchar_t>::append(const wchar_t*, + const wchar_t*); +FMT_END_NAMESPACE |