8 #ifndef __ORCUS_PSTRING_HPP__ 9 #define __ORCUS_PSTRING_HPP__ 11 #include "orcus/env.hpp" 26 friend ::std::ostream& operator<< (::std::ostream& os,
const pstring& str);
30 pstring() : m_pos(
nullptr), m_size(0) {}
32 pstring(
const char* _pos,
size_t _size) : m_pos(_pos), m_size(_size) {}
33 pstring(
const std::string& s) : m_pos(s.data()), m_size(s.size()) {}
35 ::std::string str()
const { return ::std::string(m_pos, m_size); }
37 size_t size()
const {
return m_size; }
38 const char& operator[](
size_t idx)
const {
return m_pos[idx]; }
47 const char*
get()
const {
return m_pos; }
49 const char* data()
const {
return m_pos; }
51 bool operator== (
const pstring& r)
const;
53 bool operator!= (
const pstring& r)
const 55 return !operator==(r);
58 bool operator< (
const pstring& r)
const;
60 bool operator== (
const char* _str)
const;
62 bool operator!= (
const char* _str)
const 64 return !operator==(_str);
69 bool empty()
const {
return m_size == 0; }
77 void resize(
size_t new_size);
79 struct ORCUS_PSR_DLLPUBLIC
hash 81 size_t operator() (
const pstring& val)
const;
89 inline ::std::ostream& operator<< (::std::ostream& os,
const pstring& str)
91 return os << str.str();
94 ORCUS_PSR_DLLPUBLIC std::string operator+ (
const std::string& left,
const pstring& right);
95 ORCUS_PSR_DLLPUBLIC std::string& operator+= (std::string& left,
const pstring& right);
Definition: pstring.hpp:79
Definition: pstring.hpp:24
Definition: base64.hpp:15