diff --git a/include/fmt/ranges.h b/include/fmt/ranges.h index eac81a798e81..acff1574a877 100644 --- a/include/fmt/ranges.h +++ b/include/fmt/ranges.h @@ -437,7 +437,7 @@ auto find_escape(const Char* begin, const Char* end) return {begin, nullptr, 0}; } -auto find_escape(const char* begin, const char* end) +inline auto find_escape(const char* begin, const char* end) -> find_escape_result { if (!is_utf8()) return find_escape(begin, end); auto result = find_escape_result{end, nullptr, 0}; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index bf3785a65d72..6bf68fb3c469 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -85,7 +85,7 @@ endif () add_fmt_test(ostream-test) add_fmt_test(compile-test) add_fmt_test(printf-test) -add_fmt_test(ranges-test) +add_fmt_test(ranges-test ranges-odr-test.cc) add_fmt_test(scan-test) add_fmt_test(unicode-test HEADER_ONLY) if (MSVC) diff --git a/test/ranges-odr-test.cc b/test/ranges-odr-test.cc new file mode 100644 index 000000000000..9d6cd1ffce45 --- /dev/null +++ b/test/ranges-odr-test.cc @@ -0,0 +1,19 @@ +// Formatting library for C++ - the core API +// +// Copyright (c) 2012 - present, Victor Zverovich +// All rights reserved. +// +// For the license information refer to format.h. + +#include "fmt/ranges.h" + +#include + +#include "gtest/gtest.h" + +// call fmt::format from another translation unit to test ODR +TEST(ranges_odr_test, format_vector) { + auto v = std::vector{1, 2, 3, 5, 7, 11}; + EXPECT_EQ(fmt::format("{}", v), "[1, 2, 3, 5, 7, 11]"); +} +