mirror of
https://github.com/fmtlib/fmt.git
synced 2024-12-24 21:16:56 +00:00
Improve compile time by using extern template (#1452)
This commit is contained in:
parent
cb475cb884
commit
6f435f55c8
@ -1779,7 +1779,7 @@ inline std::back_insert_iterator<Container> format_to(
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename S, typename Char = char_t<S>>
|
template <typename S, typename Char = char_t<S>>
|
||||||
inline std::basic_string<Char> vformat(
|
FMT_INLINE std::basic_string<Char> vformat(
|
||||||
const S& format_str,
|
const S& format_str,
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
||||||
return internal::vformat(to_string_view(format_str), args);
|
return internal::vformat(to_string_view(format_str), args);
|
||||||
@ -1798,7 +1798,7 @@ inline std::basic_string<Char> vformat(
|
|||||||
// Pass char_t as a default template parameter instead of using
|
// Pass char_t as a default template parameter instead of using
|
||||||
// std::basic_string<char_t<S>> to reduce the symbol size.
|
// std::basic_string<char_t<S>> to reduce the symbol size.
|
||||||
template <typename S, typename... Args, typename Char = char_t<S>>
|
template <typename S, typename... Args, typename Char = char_t<S>>
|
||||||
inline std::basic_string<Char> format(const S& format_str, Args&&... args) {
|
FMT_INLINE std::basic_string<Char> format(const S& format_str, Args&&... args) {
|
||||||
const auto& vargs = internal::make_args_checked<Args...>(format_str, args...);
|
const auto& vargs = internal::make_args_checked<Args...>(format_str, args...);
|
||||||
return internal::vformat(to_string_view(format_str), vargs);
|
return internal::vformat(to_string_view(format_str), vargs);
|
||||||
}
|
}
|
||||||
|
@ -3402,6 +3402,11 @@ typename buffer_context<Char>::iterator internal::vformat_to(
|
|||||||
args);
|
args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef FMT_HEADER_ONLY
|
||||||
|
extern template format_context::iterator internal::vformat_to(
|
||||||
|
internal::buffer<char>&, string_view, basic_format_args<format_context>);
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename S, typename Char = char_t<S>,
|
template <typename S, typename Char = char_t<S>,
|
||||||
FMT_ENABLE_IF(internal::is_string<S>::value)>
|
FMT_ENABLE_IF(internal::is_string<S>::value)>
|
||||||
inline typename buffer_context<Char>::iterator vformat_to(
|
inline typename buffer_context<Char>::iterator vformat_to(
|
||||||
@ -3512,7 +3517,7 @@ inline format_to_n_result<OutputIt> format_to_n(OutputIt out, std::size_t n,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename Char>
|
template <typename Char>
|
||||||
inline std::basic_string<Char> internal::vformat(
|
std::basic_string<Char> internal::vformat(
|
||||||
basic_string_view<Char> format_str,
|
basic_string_view<Char> format_str,
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
||||||
basic_memory_buffer<Char> buffer;
|
basic_memory_buffer<Char> buffer;
|
||||||
|
Loading…
Reference in New Issue
Block a user