Coverage Report

Created: 2026-09-19 06:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/botan/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
234
inline void do_fmt(std::ostringstream& oss, std::string_view format) {
21
234
   oss << format;
22
234
}
23
24
template <typename T, typename... Ts>
25
702
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
702
   size_t i = 0;
27
28
1.87k
   while(i < format.size()) {
29
1.87k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
702
         oss << val;
31
702
         return do_fmt(oss, format.substr(i + 2), rest...);
32
1.17k
      } else {
33
1.17k
         oss << format[i];
34
1.17k
      }
35
36
1.17k
      i += 1;
37
1.17k
   }
38
702
}
Unexecuted instantiation: 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&)
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_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<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&)
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<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<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<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, 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> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long const&, unsigned long 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, 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&, unsigned long const&)
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<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
234
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
234
   size_t i = 0;
27
28
468
   while(i < format.size()) {
29
468
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
234
         oss << val;
31
234
         return do_fmt(oss, format.substr(i + 2), rest...);
32
234
      } else {
33
234
         oss << format[i];
34
234
      }
35
36
234
      i += 1;
37
234
   }
38
234
}
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
234
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
234
   size_t i = 0;
27
28
234
   while(i < format.size()) {
29
234
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
234
         oss << val;
31
234
         return do_fmt(oss, format.substr(i + 2), rest...);
32
234
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
234
}
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
234
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
234
   size_t i = 0;
27
28
1.17k
   while(i < format.size()) {
29
1.17k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
234
         oss << val;
31
234
         return do_fmt(oss, format.substr(i + 2), rest...);
32
936
      } else {
33
936
         oss << format[i];
34
936
      }
35
36
936
      i += 1;
37
936
   }
38
234
}
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<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&)
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&)
Unexecuted instantiation: 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&)
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<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<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> >, 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&, 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<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long, 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> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long const&, unsigned long const&, unsigned long 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
234
std::string fmt(std::string_view format, const T&... args) {
54
234
   std::ostringstream oss;
55
234
   oss.imbue(std::locale::classic());
56
234
   fmt_detail::do_fmt(oss, format, args...);
57
234
   return oss.str();
58
234
}
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> > 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 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_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<unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long 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 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<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<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long, 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&, unsigned long 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, unsigned long, unsigned long>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long const&, unsigned long const&, unsigned long 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<unsigned long, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, unsigned long 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
234
std::string fmt(std::string_view format, const T&... args) {
54
234
   std::ostringstream oss;
55
234
   oss.imbue(std::locale::classic());
56
234
   fmt_detail::do_fmt(oss, format, args...);
57
234
   return oss.str();
58
234
}
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&)
Unexecuted instantiation: 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&)
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<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&)
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> >, 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&, 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<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned long, unsigned long, 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&, unsigned long const&, unsigned long const&)
59
60
}  // namespace Botan
61
62
#endif