Coverage Report

Created: 2025-06-10 13:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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