runMACS
 All Data Structures Files Functions Variables Enumerations Enumerator Macros
stringtricks.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <sstream>
4 
5 inline void _append_stream(std::ostringstream&) {}
6 
7 template<typename T, typename... Args>
8 inline void _append_stream(std::ostringstream& stream, T&& first_value, Args&&... other_values) {
9  stream << std::forward<T>(first_value);
10  _append_stream(stream, std::forward<Args>(other_values)...);
11 }
12 
19 //#define SSTR(x) ({std::stringstream __sstr; __sstr << x; __sstr.str();})
20 template<typename... Args>
21 inline std::string SSTR(Args&&... components)
22 {
23  std::ostringstream s;
24  _append_stream(s, std::forward<Args>(components)...);
25  return s.str();
26 }
void _append_stream(std::ostringstream &)
Definition: stringtricks.h:5
std::string SSTR(Args &&...components)
Creates a temporary string stream for string concatenation.
Definition: stringtricks.h:21