]> git.proxmox.com Git - ceph.git/blob - ceph/src/include/stringify.h
update sources to v12.1.1
[ceph.git] / ceph / src / include / stringify.h
1 #ifndef __CEPH_STRINGIFY_H
2 #define __CEPH_STRINGIFY_H
3
4 #include <string>
5 #include <sstream>
6
7 #include "include/types.h"
8
9 template<typename T>
10 inline std::string stringify(const T& a) {
11 #if defined(__GNUC__) && !(defined(__clang__) || defined(__INTEL_COMPILER))
12 static __thread std::ostringstream ss;
13 ss.str("");
14 #else
15 std::ostringstream ss;
16 #endif
17 ss << a;
18 return ss.str();
19 }
20
21 template <class T, class A>
22 T joinify(const A &begin, const A &end, const T &t)
23 {
24 T result;
25 for (A it = begin; it != end; it++) {
26 if (!result.empty())
27 result.append(t);
28 result.append(*it);
29 }
30 return result;
31 }
32
33 #endif