29class SIM_API opp_staticpooledstring
34 opp_staticpooledstring();
35 opp_staticpooledstring(
const char *s);
36 opp_staticpooledstring(
const std::string& s) : opp_staticpooledstring(s.c_str()) {}
37 opp_staticpooledstring(
const opp_staticpooledstring&) =
default;
38 opp_staticpooledstring(opp_staticpooledstring&&) =
default;
39 opp_staticpooledstring& operator=(
const opp_staticpooledstring&) =
default;
40 opp_staticpooledstring& operator=(opp_staticpooledstring&&) =
default;
41 bool empty()
const {
return !p || !*p;}
42 std::string str()
const {
return p;}
43 const char *c_str()
const {
return p;}
44 static const char *get(
const char *s);
45 bool operator==(
const opp_staticpooledstring& ps)
const {
return p == ps.p;}
46 bool operator!=(
const opp_staticpooledstring& ps)
const {
return p != ps.p;}
47 bool operator==(
const char *s)
const {
return strcmp(p,s) == 0;}
48 bool operator!=(
const char *s)
const {
return strcmp(p,s) != 0;}
49 bool operator==(
const std::string& s)
const {
return strcmp(p,s.c_str()) == 0;}
50 bool operator!=(
const std::string& s)
const {
return strcmp(p,s.c_str()) != 0;}
63class SIM_API opp_pooledstring
69 opp_pooledstring(
const char *s);
70 opp_pooledstring(
const std::string& s) : opp_pooledstring(s.c_str()) {}
71 opp_pooledstring(
const opp_pooledstring& ps) : opp_pooledstring(ps.c_str()) {}
72 opp_pooledstring(opp_pooledstring&& ps) {p = ps.p; ps.p =
nullptr;}
74 opp_pooledstring& operator=(
const opp_pooledstring& ps);
75 opp_pooledstring& operator=(opp_pooledstring&& ps);
76 bool empty()
const {
return !p || !*p;}
77 std::string str()
const {
return p;}
78 const char *c_str()
const {
return p;}
79 bool operator==(
const opp_pooledstring& ps)
const {
return p == ps.p;}
80 bool operator!=(
const opp_pooledstring& ps)
const {
return p != ps.p;}
81 bool operator==(
const char *s)
const {
return strcmp(p,s) == 0;}
82 bool operator!=(
const char *s)
const {
return strcmp(p,s) != 0;}
83 bool operator==(
const std::string& s)
const {
return strcmp(p,s.c_str()) == 0;}
84 bool operator!=(
const std::string& s)
const {
return strcmp(p,s.c_str()) != 0;}