Coverage Report

Created: 2026-09-14 06:17

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
536
inline void do_fmt(std::ostringstream& oss, std::string_view format) {
21
536
   oss << format;
22
536
}
23
24
template <typename T, typename... Ts>
25
590
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
590
   size_t i = 0;
27
28
3.72k
   while(i < format.size()) {
29
3.72k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
590
         oss << val;
31
590
         return do_fmt(oss, format.substr(i + 2), rest...);
32
3.13k
      } else {
33
3.13k
         oss << format[i];
34
3.13k
      }
35
36
3.13k
      i += 1;
37
3.13k
   }
38
590
}
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
484
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
484
   size_t i = 0;
27
28
2.81k
   while(i < format.size()) {
29
2.81k
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
484
         oss << val;
31
484
         return do_fmt(oss, format.substr(i + 2), rest...);
32
2.33k
      } else {
33
2.33k
         oss << format[i];
34
2.33k
      }
35
36
2.33k
      i += 1;
37
2.33k
   }
38
484
}
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&)
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&)
Line
Count
Source
25
20
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
20
   size_t i = 0;
27
28
120
   while(i < format.size()) {
29
120
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
20
         oss << val;
31
20
         return do_fmt(oss, format.substr(i + 2), rest...);
32
100
      } else {
33
100
         oss << format[i];
34
100
      }
35
36
100
      i += 1;
37
100
   }
38
20
}
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
26
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
26
   size_t i = 0;
27
28
694
   while(i < format.size()) {
29
694
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
26
         oss << val;
31
26
         return do_fmt(oss, format.substr(i + 2), rest...);
32
668
      } else {
33
668
         oss << format[i];
34
668
      }
35
36
668
      i += 1;
37
668
   }
38
26
}
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
6
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
6
   size_t i = 0;
27
28
12
   while(i < format.size()) {
29
12
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
6
         oss << val;
31
6
         return do_fmt(oss, format.substr(i + 2), rest...);
32
6
      } else {
33
6
         oss << format[i];
34
6
      }
35
36
6
      i += 1;
37
6
   }
38
6
}
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
6
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
6
   size_t i = 0;
27
28
6
   while(i < format.size()) {
29
6
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
6
         oss << val;
31
6
         return do_fmt(oss, format.substr(i + 2), rest...);
32
6
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
6
}
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
6
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
6
   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
6
         oss << val;
31
6
         return do_fmt(oss, format.substr(i + 2), rest...);
32
24
      } else {
33
24
         oss << format[i];
34
24
      }
35
36
24
      i += 1;
37
24
   }
38
6
}
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&)
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
22
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
22
   size_t i = 0;
27
28
22
   while(i < format.size()) {
29
22
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
22
         oss << val;
31
22
         return do_fmt(oss, format.substr(i + 2), rest...);
32
22
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
22
}
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&)
Line
Count
Source
25
20
void do_fmt(std::ostringstream& oss, std::string_view format, const T& val, const Ts&... rest) {
26
20
   size_t i = 0;
27
28
20
   while(i < format.size()) {
29
20
      if(format[i] == '{' && (format.size() > (i + 1)) && format.at(i + 1) == '}') {
30
20
         oss << val;
31
20
         return do_fmt(oss, format.substr(i + 2), rest...);
32
20
      } else {
33
0
         oss << format[i];
34
0
      }
35
36
0
      i += 1;
37
0
   }
38
20
}
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
536
std::string fmt(std::string_view format, const T&... args) {
54
536
   std::ostringstream oss;
55
536
   oss.imbue(std::locale::classic());
56
536
   fmt_detail::do_fmt(oss, format, args...);
57
536
   return oss.str();
58
536
}
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
462
std::string fmt(std::string_view format, const T&... args) {
54
462
   std::ostringstream oss;
55
462
   oss.imbue(std::locale::classic());
56
462
   fmt_detail::do_fmt(oss, format, args...);
57
462
   return oss.str();
58
462
}
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&)
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&)
Line
Count
Source
53
20
std::string fmt(std::string_view format, const T&... args) {
54
20
   std::ostringstream oss;
55
20
   oss.imbue(std::locale::classic());
56
20
   fmt_detail::do_fmt(oss, format, args...);
57
20
   return oss.str();
58
20
}
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
6
std::string fmt(std::string_view format, const T&... args) {
54
6
   std::ostringstream oss;
55
6
   oss.imbue(std::locale::classic());
56
6
   fmt_detail::do_fmt(oss, format, args...);
57
6
   return oss.str();
58
6
}
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
6
std::string fmt(std::string_view format, const T&... args) {
54
6
   std::ostringstream oss;
55
6
   oss.imbue(std::locale::classic());
56
6
   fmt_detail::do_fmt(oss, format, args...);
57
6
   return oss.str();
58
6
}
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
22
std::string fmt(std::string_view format, const T&... args) {
54
22
   std::ostringstream oss;
55
22
   oss.imbue(std::locale::classic());
56
22
   fmt_detail::do_fmt(oss, format, args...);
57
22
   return oss.str();
58
22
}
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&)
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&)
Line
Count
Source
53
20
std::string fmt(std::string_view format, const T&... args) {
54
20
   std::ostringstream oss;
55
20
   oss.imbue(std::locale::classic());
56
20
   fmt_detail::do_fmt(oss, format, args...);
57
20
   return oss.str();
58
20
}
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