/bitcoin/src/util/translation.h
Line | Count | Source |
1 | | // Copyright (c) 2019-present The Bitcoin Core developers |
2 | | // Distributed under the MIT software license, see the accompanying |
3 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
4 | | |
5 | | #ifndef BITCOIN_UTIL_TRANSLATION_H |
6 | | #define BITCOIN_UTIL_TRANSLATION_H |
7 | | |
8 | | #include <tinyformat.h> |
9 | | #include <util/string.h> |
10 | | |
11 | | #include <cassert> |
12 | | #include <functional> |
13 | | #include <string> |
14 | | |
15 | | /** Translate a message to the native language of the user. */ |
16 | | using TranslateFn = std::function<std::string(const char*)>; |
17 | | const extern TranslateFn G_TRANSLATION_FUN; |
18 | | |
19 | | /** |
20 | | * Bilingual messages: |
21 | | * - in GUI: user's native language + untranslated (i.e. English) |
22 | | * - in log and stderr: untranslated only |
23 | | */ |
24 | | struct bilingual_str { |
25 | | std::string original; |
26 | | std::string translated; |
27 | | |
28 | | bilingual_str& operator+=(const bilingual_str& rhs) |
29 | 0 | { |
30 | 0 | original += rhs.original; |
31 | 0 | translated += rhs.translated; |
32 | 0 | return *this; |
33 | 0 | } |
34 | | |
35 | | bool empty() const |
36 | 44.3k | { |
37 | 44.3k | return original.empty(); |
38 | 44.3k | } |
39 | | |
40 | | void clear() |
41 | 0 | { |
42 | 0 | original.clear(); |
43 | 0 | translated.clear(); |
44 | 0 | } |
45 | | }; |
46 | | |
47 | | inline bilingual_str operator+(bilingual_str lhs, const bilingual_str& rhs) |
48 | 0 | { |
49 | 0 | lhs += rhs; |
50 | 0 | return lhs; |
51 | 0 | } |
52 | | |
53 | | namespace util { |
54 | | //! Compile-time literal string that can be translated with an optional translation function. |
55 | | struct TranslatedLiteral { |
56 | | const char* const original; |
57 | | const TranslateFn* translate_fn; |
58 | | |
59 | 0 | consteval TranslatedLiteral(const char* str, const TranslateFn* fn = &G_TRANSLATION_FUN) : original{str}, translate_fn{fn} { assert(original); } |
60 | 99.8k | operator std::string() const { return translate_fn && *translate_fn ? (*translate_fn)(original) : original; } Branch (60:43): [True: 99.8k, False: 0]
Branch (60:59): [True: 0, False: 99.8k]
|
61 | 11.1k | operator bilingual_str() const { return {original, std::string{*this}}; } |
62 | | }; |
63 | | |
64 | | // TranslatedLiteral operators for formatting and adding to strings. |
65 | 0 | inline std::ostream& operator<<(std::ostream& os, const TranslatedLiteral& lit) { return os << std::string{lit}; } |
66 | | template<typename T> |
67 | 0 | T operator+(const T& lhs, const TranslatedLiteral& rhs) { return lhs + static_cast<T>(rhs); } Unexecuted instantiation: bilingual_str util::operator+<bilingual_str>(bilingual_str const&, util::TranslatedLiteral const&) Unexecuted instantiation: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > util::operator+<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, util::TranslatedLiteral const&) |
68 | | template<typename T> |
69 | 0 | T operator+(const TranslatedLiteral& lhs, const T& rhs) { return static_cast<T>(lhs) + rhs; } |
70 | | |
71 | | template <unsigned num_params> |
72 | | struct BilingualFmt { |
73 | | const ConstevalFormatString<num_params> original; |
74 | | TranslatedLiteral lit; |
75 | | consteval BilingualFmt(TranslatedLiteral l) : original{l.original}, lit{l} {} |
76 | | }; |
77 | | } // namespace util |
78 | | |
79 | | consteval auto _(util::TranslatedLiteral str) { return str; } |
80 | | |
81 | | /** Mark a bilingual_str as untranslated */ |
82 | 2.25M | inline bilingual_str Untranslated(std::string original) { return {original, original}; } |
83 | | |
84 | | // Provide an overload of tinyformat::format for BilingualFmt format strings and bilingual_str or TranslatedLiteral args. |
85 | | namespace tinyformat { |
86 | | template <typename... Args> |
87 | | bilingual_str format(util::BilingualFmt<sizeof...(Args)> fmt, const Args&... args) |
88 | 0 | { |
89 | 0 | const auto original_arg{[](const auto& arg) -> const auto& { |
90 | 0 | if constexpr (std::is_same_v<decltype(arg), const bilingual_str&>) { |
91 | 0 | return arg.original; |
92 | | } else if constexpr (std::is_same_v<decltype(arg), const util::TranslatedLiteral&>) { |
93 | | return arg.original; |
94 | 0 | } else { |
95 | 0 | return arg; |
96 | 0 | } |
97 | 0 | }}; Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char [13]>(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const (&) [13])::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char [13]>(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const (&) [13])::{lambda(auto:1 const&)#1}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, unsigned short>(util::BilingualFmt<2>, char const* const&, unsigned short const&)::{lambda(auto:1 const&)#1}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, unsigned short>(util::BilingualFmt<2>, char const* const&, unsigned short const&)::{lambda(auto:1 const&)#1}::operator()<unsigned short>(unsigned short const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<1>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<int, int>(util::BilingualFmt<2>, int const&, int const&)::{lambda(auto:1 const&)#1}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<long, unsigned int>(util::BilingualFmt<2>, long const&, unsigned int const&)::{lambda(auto:1 const&)#1}::operator()<long>(long const&) const Unexecuted instantiation: auto const& tinyformat::format<long, unsigned int>(util::BilingualFmt<2>, long const&, unsigned int const&)::{lambda(auto:1 const&)#1}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13]>(util::BilingualFmt<1>, char const (&) [13])::{lambda(auto:1 const&)#1}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<1>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#1}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long, unsigned int>(util::BilingualFmt<2>, unsigned long const&, unsigned int const&)::{lambda(auto:1 const&)#1}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long, unsigned int>(util::BilingualFmt<2>, unsigned long const&, unsigned int const&)::{lambda(auto:1 const&)#1}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char>, unsigned long>(util::BilingualFmt<2>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&, unsigned long const&)::{lambda(auto:1 const&)#1}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char>, unsigned long>(util::BilingualFmt<2>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&, unsigned long const&)::{lambda(auto:1 const&)#1}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long>(util::BilingualFmt<1>, unsigned long const&)::{lambda(auto:1 const&)#1}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<int>(util::BilingualFmt<1>, int const&)::{lambda(auto:1 const&)#1}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<long>(util::BilingualFmt<1>, long const&)::{lambda(auto:1 const&)#1}::operator()<long>(long const&) const Unexecuted instantiation: auto const& tinyformat::format<double>(util::BilingualFmt<1>, double const&)::{lambda(auto:1 const&)#1}::operator()<double>(double const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#1}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#1}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#1}::operator()<char [42]>(char const (&) [42]) const Unexecuted instantiation: auto const& tinyformat::format<char const*>(util::BilingualFmt<1>, char const* const&)::{lambda(auto:1 const&)#1}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#1}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#1}::operator()<char [42]>(char const (&) [42]) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#1}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [12]>(char const (&) [12]) const Unexecuted instantiation: auto const& tinyformat::format<char [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10]>(util::BilingualFmt<1>, char const (&) [10])::{lambda(auto:1 const&)#1}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<int, int, wallet::WalletFeature>(util::BilingualFmt<3>, int const&, int const&, wallet::WalletFeature const&)::{lambda(auto:1 const&)#1}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<int, int, wallet::WalletFeature>(util::BilingualFmt<3>, int const&, int const&, wallet::WalletFeature const&)::{lambda(auto:1 const&)#1}::operator()<wallet::WalletFeature>(wallet::WalletFeature const&) const Unexecuted instantiation: auto const& tinyformat::format<bilingual_str>(util::BilingualFmt<1>, bilingual_str const&)::{lambda(auto:1 const&)#1}::operator()<bilingual_str>(bilingual_str const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned int, unsigned int>(util::BilingualFmt<2>, unsigned int const&, unsigned int const&)::{lambda(auto:1 const&)#1}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<4>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<4>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [7]>(char const (&) [7]) const Unexecuted instantiation: auto const& tinyformat::format<char [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<char [14]>(char const (&) [14]) const Unexecuted instantiation: auto const& tinyformat::format<char [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#1}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], char [27]>(util::BilingualFmt<2>, char const (&) [13], char const (&) [27])::{lambda(auto:1 const&)#1}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], char [27]>(util::BilingualFmt<2>, char const (&) [13], char const (&) [27])::{lambda(auto:1 const&)#1}::operator()<char [27]>(char const (&) [27]) const Unexecuted instantiation: auto const& tinyformat::format<char [8], char [37]>(util::BilingualFmt<2>, char const (&) [8], char const (&) [37])::{lambda(auto:1 const&)#1}::operator()<char [8]>(char const (&) [8]) const Unexecuted instantiation: auto const& tinyformat::format<char [8], char [37]>(util::BilingualFmt<2>, char const (&) [8], char const (&) [37])::{lambda(auto:1 const&)#1}::operator()<char [37]>(char const (&) [37]) const |
98 | 0 | const auto translated_arg{[](const auto& arg) -> const auto& { |
99 | 0 | if constexpr (std::is_same_v<decltype(arg), const bilingual_str&>) { |
100 | 0 | return arg.translated; |
101 | 0 | } else { |
102 | 0 | return arg; |
103 | 0 | } |
104 | 0 | }}; Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char [13]>(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const (&) [13])::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char [13]>(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const (&) [13])::{lambda(auto:1 const&)#2}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, unsigned short>(util::BilingualFmt<2>, char const* const&, unsigned short const&)::{lambda(auto:1 const&)#2}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, unsigned short>(util::BilingualFmt<2>, char const* const&, unsigned short const&)::{lambda(auto:1 const&)#2}::operator()<unsigned short>(unsigned short const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<1>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<int, int>(util::BilingualFmt<2>, int const&, int const&)::{lambda(auto:1 const&)#2}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<long, unsigned int>(util::BilingualFmt<2>, long const&, unsigned int const&)::{lambda(auto:1 const&)#2}::operator()<long>(long const&) const Unexecuted instantiation: auto const& tinyformat::format<long, unsigned int>(util::BilingualFmt<2>, long const&, unsigned int const&)::{lambda(auto:1 const&)#2}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13]>(util::BilingualFmt<1>, char const (&) [13])::{lambda(auto:1 const&)#2}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<1>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#2}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long, unsigned int>(util::BilingualFmt<2>, unsigned long const&, unsigned int const&)::{lambda(auto:1 const&)#2}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long, unsigned int>(util::BilingualFmt<2>, unsigned long const&, unsigned int const&)::{lambda(auto:1 const&)#2}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char>, unsigned long>(util::BilingualFmt<2>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&, unsigned long const&)::{lambda(auto:1 const&)#2}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char>, unsigned long>(util::BilingualFmt<2>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&, unsigned long const&)::{lambda(auto:1 const&)#2}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned long>(util::BilingualFmt<1>, unsigned long const&)::{lambda(auto:1 const&)#2}::operator()<unsigned long>(unsigned long const&) const Unexecuted instantiation: auto const& tinyformat::format<int>(util::BilingualFmt<1>, int const&)::{lambda(auto:1 const&)#2}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<long>(util::BilingualFmt<1>, long const&)::{lambda(auto:1 const&)#2}::operator()<long>(long const&) const Unexecuted instantiation: auto const& tinyformat::format<double>(util::BilingualFmt<1>, double const&)::{lambda(auto:1 const&)#2}::operator()<double>(double const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#2}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#2}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42])::{lambda(auto:1 const&)#2}::operator()<char [42]>(char const (&) [42]) const Unexecuted instantiation: auto const& tinyformat::format<char const*>(util::BilingualFmt<1>, char const* const&)::{lambda(auto:1 const&)#2}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#2}::operator()<char const*>(char const* const&) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#2}::operator()<char [42]>(char const (&) [42]) const Unexecuted instantiation: auto const& tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&)::{lambda(auto:1 const&)#2}::operator()<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [12]>(char const (&) [12]) const Unexecuted instantiation: auto const& tinyformat::format<char [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10]>(util::BilingualFmt<1>, char const (&) [10])::{lambda(auto:1 const&)#2}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<int, int, wallet::WalletFeature>(util::BilingualFmt<3>, int const&, int const&, wallet::WalletFeature const&)::{lambda(auto:1 const&)#2}::operator()<int>(int const&) const Unexecuted instantiation: auto const& tinyformat::format<int, int, wallet::WalletFeature>(util::BilingualFmt<3>, int const&, int const&, wallet::WalletFeature const&)::{lambda(auto:1 const&)#2}::operator()<wallet::WalletFeature>(wallet::WalletFeature const&) const Unexecuted instantiation: auto const& tinyformat::format<bilingual_str>(util::BilingualFmt<1>, bilingual_str const&)::{lambda(auto:1 const&)#2}::operator()<bilingual_str>(bilingual_str const&) const Unexecuted instantiation: auto const& tinyformat::format<unsigned int, unsigned int>(util::BilingualFmt<2>, unsigned int const&, unsigned int const&)::{lambda(auto:1 const&)#2}::operator()<unsigned int>(unsigned int const&) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<4>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [10]>(char const (&) [10]) const Unexecuted instantiation: auto const& tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<4>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [7]>(char const (&) [7]) const Unexecuted instantiation: auto const& tinyformat::format<char [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<char [14]>(char const (&) [14]) const Unexecuted instantiation: auto const& tinyformat::format<char [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(auto:1 const&)#2}::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const Unexecuted instantiation: auto const& tinyformat::format<char [13], char [27]>(util::BilingualFmt<2>, char const (&) [13], char const (&) [27])::{lambda(auto:1 const&)#2}::operator()<char [13]>(char const (&) [13]) const Unexecuted instantiation: auto const& tinyformat::format<char [13], char [27]>(util::BilingualFmt<2>, char const (&) [13], char const (&) [27])::{lambda(auto:1 const&)#2}::operator()<char [27]>(char const (&) [27]) const Unexecuted instantiation: auto const& tinyformat::format<char [8], char [37]>(util::BilingualFmt<2>, char const (&) [8], char const (&) [37])::{lambda(auto:1 const&)#2}::operator()<char [8]>(char const (&) [8]) const Unexecuted instantiation: auto const& tinyformat::format<char [8], char [37]>(util::BilingualFmt<2>, char const (&) [8], char const (&) [37])::{lambda(auto:1 const&)#2}::operator()<char [37]>(char const (&) [37]) const |
105 | 0 | return bilingual_str{tfm::format(fmt.original, original_arg(args)...), |
106 | 0 | tfm::format(RuntimeFormat{std::string{fmt.lit}}, translated_arg(args)...)}; |
107 | 0 | } Unexecuted instantiation: bilingual_str tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char [13]>(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const (&) [13]) Unexecuted instantiation: bilingual_str tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char const*, unsigned short>(util::BilingualFmt<2>, char const* const&, unsigned short const&) Unexecuted instantiation: bilingual_str tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<1>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<int, int>(util::BilingualFmt<2>, int const&, int const&) Unexecuted instantiation: bilingual_str tinyformat::format<long, unsigned int>(util::BilingualFmt<2>, long const&, unsigned int const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [13]>(util::BilingualFmt<1>, char const (&) [13]) Unexecuted instantiation: bilingual_str tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<1>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) Unexecuted instantiation: bilingual_str tinyformat::format<unsigned long, unsigned int>(util::BilingualFmt<2>, unsigned long const&, unsigned int const&) Unexecuted instantiation: bilingual_str tinyformat::format<>(util::BilingualFmt<0>) Unexecuted instantiation: bilingual_str tinyformat::format<std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char>, unsigned long>(util::BilingualFmt<2>, std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&, unsigned long const&) Unexecuted instantiation: bilingual_str tinyformat::format<unsigned long>(util::BilingualFmt<1>, unsigned long const&) Unexecuted instantiation: bilingual_str tinyformat::format<int>(util::BilingualFmt<1>, int const&) Unexecuted instantiation: bilingual_str tinyformat::format<long>(util::BilingualFmt<1>, long const&) Unexecuted instantiation: bilingual_str tinyformat::format<double>(util::BilingualFmt<1>, double const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [13], int, int, int, char [42]>(util::BilingualFmt<5>, char const (&) [13], int const&, int const&, int const&, char const (&) [42]) Unexecuted instantiation: bilingual_str tinyformat::format<char const*>(util::BilingualFmt<1>, char const* const&) Unexecuted instantiation: bilingual_str tinyformat::format<char const*, char [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> >(util::BilingualFmt<3>, char const* const&, char const (&) [42], std::__detail::_Quoted_string<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char> const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [12], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<3>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [10]>(util::BilingualFmt<1>, char const (&) [10]) Unexecuted instantiation: bilingual_str tinyformat::format<int, int, wallet::WalletFeature>(util::BilingualFmt<3>, int const&, int const&, wallet::WalletFeature const&) Unexecuted instantiation: bilingual_str tinyformat::format<bilingual_str>(util::BilingualFmt<1>, bilingual_str const&) Unexecuted instantiation: bilingual_str tinyformat::format<unsigned int, unsigned int>(util::BilingualFmt<2>, unsigned int const&, unsigned int const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<4>, char const (&) [10], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(util::BilingualFmt<2>, char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) Unexecuted instantiation: bilingual_str tinyformat::format<char [13], char [27]>(util::BilingualFmt<2>, char const (&) [13], char const (&) [27]) Unexecuted instantiation: bilingual_str tinyformat::format<char [8], char [37]>(util::BilingualFmt<2>, char const (&) [8], char const (&) [37]) |
108 | | } // namespace tinyformat |
109 | | |
110 | | #endif // BITCOIN_UTIL_TRANSLATION_H |