Browse Source

* Implemented string builder

master
bergmann 4 years ago
parent
commit
67156bb213
2 changed files with 56 additions and 0 deletions
  1. +33
    -0
      include/cppcore/misc/string_builder.h
  2. +23
    -0
      include/cppcore/misc/string_builder.inl

+ 33
- 0
include/cppcore/misc/string_builder.h View File

@@ -0,0 +1,33 @@
#pragma once

#include <sstream>

namespace cppcore
{

struct string_builder
{
private:
std::ostringstream os;

public:
/**
* @brief Write something to the string builder
*/
template<typename TArg>
string_builder& operator<<(TArg&& arg);

/**
* @brief Get the constructed string.
*/
inline std::string str() const;

/**
* @brief Get the constructed string.
*/
inline operator std::string() const;
};

}

#include "string_builder.inl"

+ 23
- 0
include/cppcore/misc/string_builder.inl View File

@@ -0,0 +1,23 @@
#pragma once

#include "string_builder.h"

namespace cppcore
{

/* string_builder */

template<typename TArg>
string_builder& string_builder::operator<<(TArg&& arg)
{
os << std::forward<TArg>(arg);
return *this;
}

std::string string_builder::str() const
{ return os.str(); }

string_builder::operator std::string() const
{ return str(); }

}

Loading…
Cancel
Save