Files
i3ipcpp/3rd/auss/include/auss.hpp
2016-09-04 17:55:10 +03:00

48 lines
805 B
C++

#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