61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
// Copyright (C) 2017 Jérôme Leclercq
|
|
// This file is part of the "Nazara Engine - Core module"
|
|
// For conditions of distribution and use, see copyright notice in Config.hpp
|
|
|
|
#pragma once
|
|
|
|
#ifndef NAZARA_STRINGSTREAM_HPP
|
|
#define NAZARA_STRINGSTREAM_HPP
|
|
|
|
#include <Nazara/Prerequisites.hpp>
|
|
#include <Nazara/Core/String.hpp>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace Nz
|
|
{
|
|
class NAZARA_CORE_API StringStream
|
|
{
|
|
public:
|
|
StringStream() = default;
|
|
StringStream(String str);
|
|
StringStream(const StringStream&) = default;
|
|
StringStream(StringStream&&) noexcept = default;
|
|
|
|
void Clear();
|
|
|
|
std::size_t GetBufferSize() const;
|
|
|
|
String ToString() const;
|
|
|
|
StringStream& operator=(const StringStream&) = default;
|
|
StringStream& operator=(StringStream&&) noexcept = default;
|
|
|
|
StringStream& operator<<(bool boolean);
|
|
StringStream& operator<<(short number);
|
|
StringStream& operator<<(unsigned short number);
|
|
StringStream& operator<<(int number);
|
|
StringStream& operator<<(unsigned int number);
|
|
StringStream& operator<<(long number);
|
|
StringStream& operator<<(unsigned long number);
|
|
StringStream& operator<<(long long number);
|
|
StringStream& operator<<(unsigned long long number);
|
|
StringStream& operator<<(float number);
|
|
StringStream& operator<<(double number);
|
|
StringStream& operator<<(long double number);
|
|
StringStream& operator<<(char character);
|
|
StringStream& operator<<(unsigned char character);
|
|
StringStream& operator<<(const char* string);
|
|
StringStream& operator<<(const std::string& string);
|
|
StringStream& operator<<(const String& string);
|
|
StringStream& operator<<(const void* ptr);
|
|
|
|
operator String() const;
|
|
|
|
private:
|
|
String m_result;
|
|
};
|
|
}
|
|
|
|
#endif // NAZARA_STRINGSTREAM_HPP
|