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(NULL), m_size(0) {}
31 pstring(
const char* _pos) : m_pos(_pos) { m_size = std::strlen(_pos); }
32 pstring(
const char* _pos,
size_t _size) : m_pos(_pos), m_size(_size) {}
34 ::std::string str()
const { return ::std::string(m_pos, m_size); }
36 size_t size()
const {
return m_size; }
37 const char& operator[](
size_t idx)
const {
return m_pos[idx]; }
46 const char*
get()
const {
return m_pos; }
48 bool operator== (
const pstring& r)
const;
50 bool operator!= (
const pstring& r)
const 52 return !operator==(r);
55 bool operator< (
const pstring& r)
const;
57 bool operator== (
const char* _str)
const;
59 bool operator!= (
const char* _str)
const 61 return !operator==(_str);
66 bool empty()
const {
return m_size == 0; }
74 void resize(
size_t new_size);
76 struct ORCUS_PSR_DLLPUBLIC
hash 78 size_t operator() (
const pstring& val)
const;
86 inline ::std::ostream& operator<< (::std::ostream& os,
const pstring& str)
88 return os << str.str();
91 ORCUS_PSR_DLLPUBLIC std::string operator+ (
const std::string& left,
const pstring& right);
92 ORCUS_PSR_DLLPUBLIC std::string& operator+= (std::string& left,
const pstring& right);
Definition: pstring.hpp:76
Definition: pstring.hpp:24
Definition: base64.hpp:15