Coverage Report

Created: 2025-08-28 06:21

/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
18.9k
inline void do_fmt(std::ostringstream& oss, std::string_view format) {
21
18.9k
   oss << format;
22
18.9k
}
23
24
template <typename T, typename... Ts>
25
24.0k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
24.0k
   size_t i = 0;
27
28
113k
   while(i < format.size()) {
29
113k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
24.0k
         oss << val;
31
24.0k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
89.1k
      } else {
33
89.1k
         oss << format[i];
34
89.1k
      }
35
36
89.1k
      i += 1;
37
89.1k
   }
38
24.0k
}
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
5.06k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
5.06k
   size_t i = 0;
27
28
11.0k
   while(i < format.size()) {
29
11.0k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
5.06k
         oss << val;
31
5.06k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
5.93k
      } else {
33
5.93k
         oss << format[i];
34
5.93k
      }
35
36
5.93k
      i += 1;
37
5.93k
   }
38
5.06k
}
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
13.8k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
13.8k
   size_t i = 0;
27
28
96.8k
   while(i < format.size()) {
29
96.8k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
13.8k
         oss << val;
31
13.8k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
82.9k
      } else {
33
82.9k
         oss << format[i];
34
82.9k
      }
35
36
82.9k
      i += 1;
37
82.9k
   }
38
13.8k
}
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
38
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
38
   size_t i = 0;
27
28
76
   while(i < format.size()) {
29
76
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
38
         oss << val;
31
38
         return do_fmt(oss, format.substr(i + 2), rest...);
32
38
      } else {
33
38
         oss << format[i];
34
38
      }
35
36
38
      i += 1;
37
38
   }
38
38
}
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
38
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
38
   size_t i = 0;
27
28
190
   while(i < format.size()) {
29
190
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
38
         oss << val;
31
38
         return do_fmt(oss, format.substr(i + 2), rest...);
32
152
      } else {
33
152
         oss << format[i];
34
152
      }
35
36
152
      i += 1;
37
152
   }
38
38
}
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
38
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
38
   size_t i = 0;
27
28
38
   while(i < format.size()) {
29
38
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
38
         oss << val;
31
38
         return do_fmt(oss, format.substr(i + 2), rest...);
32
38
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
38
}
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
5.02k
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
5.02k
   size_t i = 0;
27
28
5.02k
   while(i < format.size()) {
29
5.02k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
5.02k
         oss << val;
31
5.02k
         return do_fmt(oss, format.substr(i + 2), rest...);
32
5.02k
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
5.02k
}
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
18.9k
std::string fmt(std::string_view format, const T&... args) {
54
18.9k
   std::ostringstream oss;
55
18.9k
   oss.imbue(std::locale::classic());
56
18.9k
   fmt_detail::do_fmt(oss, format, args...);
57
18.9k
   return oss.str();
58
18.9k
}
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
48
std::string fmt(std::string_view format, const T&... args) {
54
48
   std::ostringstream oss;
55
48
   oss.imbue(std::locale::classic());
56
48
   fmt_detail::do_fmt(oss, format, args...);
57
48
   return oss.str();
58
48
}
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
13.8k
std::string fmt(std::string_view format, const T&... args) {
54
13.8k
   std::ostringstream oss;
55
13.8k
   oss.imbue(std::locale::classic());
56
13.8k
   fmt_detail::do_fmt(oss, format, args...);
57
13.8k
   return oss.str();
58
13.8k
}
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
38
std::string fmt(std::string_view format, const T&... args) {
54
38
   std::ostringstream oss;
55
38
   oss.imbue(std::locale::classic());
56
38
   fmt_detail::do_fmt(oss, format, args...);
57
38
   return oss.str();
58
38
}
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
5.02k
std::string fmt(std::string_view format, const T&... args) {
54
5.02k
   std::ostringstream oss;
55
5.02k
   oss.imbue(std::locale::classic());
56
5.02k
   fmt_detail::do_fmt(oss, format, args...);
57
5.02k
   return oss.str();
58
5.02k
}
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