Coverage Report

Created: 2026-07-16 06:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/Botan-3.4.0/build/include/internal/botan/internal/fmt.h
Line
Count
Source
1
/*
2
* (C) 2023 Jack Lloyd
3
*
4
* Botan is released under the Simplified BSD License (see license.txt)
5
*/
6
7
#ifndef BOTAN_UTIL_FMT_H_
8
#define BOTAN_UTIL_FMT_H_
9
10
#include <botan/types.h>
11
#include <locale>
12
#include <sstream>
13
#include <string>
14
#include <string_view>
15
16
namespace Botan {
17
18
namespace fmt_detail {
19
20
13.6k
inline void do_fmt(std::ostringstream& oss, std::string_view format) {
21
13.6k
   oss << format;
22
13.6k
}
23
24
template <typename T, typename... Ts>
25
17.3k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
17.3k
   size_t i = 0;
27
28
81.5k
   while(i < format.size()) {
29
81.5k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
17.3k
         oss << val;
31
17.3k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
64.2k
      } else {
33
64.2k
         oss << format[i];
34
64.2k
      }
35
36
64.2k
      i += 1;
37
64.2k
   }
38
17.3k
}
void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
25
3.75k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
3.75k
   size_t i = 0;
27
28
8.85k
   while(i < format.size()) {
29
8.85k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
3.75k
         oss << val;
31
3.75k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
5.10k
      } else {
33
5.10k
         oss << format[i];
34
5.10k
      }
35
36
5.10k
      i += 1;
37
5.10k
   }
38
3.75k
}
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int const&)
void Botan::fmt_detail::do_fmt<unsigned long>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&)
Line
Count
Source
25
9.83k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
9.83k
   size_t i = 0;
27
28
68.8k
   while(i < format.size()) {
29
68.8k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
9.83k
         oss << val;
31
9.83k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
59.0k
      } else {
33
59.0k
         oss << format[i];
34
59.0k
      }
35
36
59.0k
      i += 1;
37
59.0k
   }
38
9.83k
}
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned long, unsigned long>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, unsigned long const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned long, char const*>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, char const* const&)
void Botan::fmt_detail::do_fmt<char const*>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&)
Line
Count
Source
25
15
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
15
   size_t i = 0;
27
28
30
   while(i < format.size()) {
29
30
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
15
         oss << val;
31
15
         return do_fmt(oss, format.substr(i + 2), rest...);
32
15
      } else {
33
15
         oss << format[i];
34
15
      }
35
36
15
      i += 1;
37
15
   }
38
15
}
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<Botan::OID, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, Botan::OID const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<Botan::OID>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, Botan::OID const&)
void Botan::fmt_detail::do_fmt<char const*, char const*>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, char const* const&)
Line
Count
Source
25
15
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
15
   size_t i = 0;
27
28
75
   while(i < format.size()) {
29
75
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
15
         oss << val;
31
15
         return do_fmt(oss, format.substr(i + 2), rest...);
32
60
      } else {
33
60
         oss << format[i];
34
60
      }
35
36
60
      i += 1;
37
60
   }
38
15
}
void Botan::fmt_detail::do_fmt<char const*, char const*, char const*>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, char const* const&, char const* const&)
Line
Count
Source
25
15
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
15
   size_t i = 0;
27
28
15
   while(i < format.size()) {
29
15
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
15
         oss << val;
31
15
         return do_fmt(oss, format.substr(i + 2), rest...);
32
15
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
15
}
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<char const*, int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, char const* const&)
void Botan::fmt_detail::do_fmt<char const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
25
3.67k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
3.67k
   size_t i = 0;
27
28
3.67k
   while(i < format.size()) {
29
3.67k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
3.67k
         oss << val;
31
3.67k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
3.67k
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
3.67k
}
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<char const*, unsigned int, unsigned int, unsigned int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, unsigned int const&, unsigned int const&, unsigned int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned int, unsigned int, unsigned int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int const&, unsigned int const&, unsigned int const&)
Unexecuted instantiation: void Botan::fmt_detail::do_fmt<unsigned int, unsigned int>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int const&, unsigned int const&)
39
40
}  // namespace fmt_detail
41
42
/**
43
* Simple formatter utility.
44
*
45
* Should be replaced with std::format once that's available on all our
46
* supported compilers.
47
*
48
* '{}' markers in the format string are replaced by the arguments.
49
* Unlike std::format, there is no support for escaping or for any kind
50
* of conversion flags.
51
*/
52
template <typename... T>
53
13.6k
std::string fmt(std::string_view format, const T&... args) {
54
13.6k
   std::ostringstream oss;
55
13.6k
   oss.imbue(std::locale::classic());
56
13.6k
   fmt_detail::do_fmt(oss, format, args...);
57
13.6k
   return oss.str();
58
13.6k
}
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
53
75
std::string fmt(std::string_view format, const T&... args) {
54
75
   std::ostringstream oss;
55
75
   oss.imbue(std::locale::classic());
56
75
   fmt_detail::do_fmt(oss, format, args...);
57
75
   return oss.str();
58
75
}
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned int const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned int const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&)
Line
Count
Source
53
9.83k
std::string fmt(std::string_view format, const T&... args) {
54
9.83k
   std::ostringstream oss;
55
9.83k
   oss.imbue(std::locale::classic());
56
9.83k
   fmt_detail::do_fmt(oss, format, args...);
57
9.83k
   return oss.str();
58
9.83k
}
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned long, unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, unsigned long const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned long, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, char const* const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<Botan::OID, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, Botan::OID const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<Botan::OID>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, Botan::OID const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, char const* const&)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, char const* const&, char const* const&)
Line
Count
Source
53
15
std::string fmt(std::string_view format, const T&... args) {
54
15
   std::ostringstream oss;
55
15
   oss.imbue(std::locale::classic());
56
15
   fmt_detail::do_fmt(oss, format, args...);
57
15
   return oss.str();
58
15
}
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, int const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, char const* const&)
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
53
3.67k
std::string fmt(std::string_view format, const T&... args) {
54
3.67k
   std::ostringstream oss;
55
3.67k
   oss.imbue(std::locale::classic());
56
3.67k
   fmt_detail::do_fmt(oss, format, args...);
57
3.67k
   return oss.str();
58
3.67k
}
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Unexecuted instantiation: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, unsigned int, unsigned int, unsigned int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, unsigned int const&, unsigned int const&, unsigned int const&)
59
60
}  // namespace Botan
61
62
#endif