1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#pragma once
#define AUSS_HPP
#include <sstream>
#ifdef AUSS_USE_OWN_NAMESPACE
#ifndef AUSS_OWN_NAMESPACE_NAME
#define AUSS_OWN_NAMESPACE_NAME auss
#endif
namespace AUSS_OWN_NAMESPACE_NAME {
#endif
class AutoStringStream {
public:
AutoStringStream() : m_stream() {}
virtual ~AutoStringStream() {}
template<typename T>
AutoStringStream& operator<<(const T& arg) {
m_stream << arg;
return *this;
}
AutoStringStream& operator<<(const bool arg) {
m_stream << (arg ? "true" : "false");
return *this;
}
operator std::string() const {
return m_stream.str();
}
const std::string to_string() const {
return m_stream.str();
}
private:
std::stringstream m_stream;
};
#ifndef AUSS_CUSTOM_TYPEDEF
typedef AutoStringStream auss_t;
#endif
#ifdef AUSS_USE_OWN_NAMESPACE
}
#endif
|