// Description: An object for streaming underlined strings
// Documentation: miscellaneous.txt
#ifndef PASTELSYS_UNDERLINED_H
#define PASTELSYS_UNDERLINED_H
#include <string>
namespace Pastel
{
class Underlined
: public std::string
{
public:
template <typename That>
explicit Underlined(That&& that, char symbol_ = '-')
: std::string(std::forward<That>(that))
, symbol(symbol_)
{
}
char symbol;
};
}
#include <ostream>
namespace Pastel
{
inline std::ostream& operator<<(
std::ostream& stream,
const Underlined& that)
{
stream << (const std::string&)that << std::endl;
for (integer i = 0;i < that.size();++i)
{
stream << that.symbol;
}
return stream;
}
}
#endif