mirror of
https://github.com/fmtlib/fmt.git
synced 2024-12-23 23:10:04 +00:00
Fix an odr violation in ranges.h (#2483)
* Add a testcase demonstrating ODR violation in ranges.h * Fix ODR violation in ranges.h * Fix comments Co-authored-by: Pierre-Antoine Lacaze <pa.lacaze@gmail.com>
This commit is contained in:
parent
ee0659f8b6
commit
d58d19ba32
@ -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<char> {
|
||||
if (!is_utf8()) return find_escape<char>(begin, end);
|
||||
auto result = find_escape_result<char>{end, nullptr, 0};
|
||||
|
@ -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)
|
||||
|
19
test/ranges-odr-test.cc
Normal file
19
test/ranges-odr-test.cc
Normal file
@ -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 <vector>
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// call fmt::format from another translation unit to test ODR
|
||||
TEST(ranges_odr_test, format_vector) {
|
||||
auto v = std::vector<int>{1, 2, 3, 5, 7, 11};
|
||||
EXPECT_EQ(fmt::format("{}", v), "[1, 2, 3, 5, 7, 11]");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user