39 #ifndef MADNESS_TINYXML_TINYSTR_H__INCLUDED
40 #define MADNESS_TINYXML_TINYSTR_H__INCLUDED
49 #if defined(_MSC_VER) && (_MSC_VER >= 1200 )
51 #define TIXML_EXPLICIT explicit
52 #elif defined(__GNUC__) && (__GNUC__ >= 3 )
54 #define TIXML_EXPLICIT explicit
56 #define TIXML_EXPLICIT
74 static const size_type
npos;
92 init( static_cast<size_type>( strlen(copy) ));
93 memcpy(start(), copy,
length());
100 memcpy(start(), str, len);
112 return assign( copy, (size_type)strlen(copy));
125 return append(suffix, static_cast<size_type>( strlen(suffix) ));
131 return append(&single, 1);
142 const char *
c_str ()
const {
return rep_->str; }
145 const char *
data ()
const {
return rep_->str; }
148 size_type
length ()
const {
return rep_->size; }
151 size_type
size ()
const {
return rep_->size; }
154 bool empty ()
const {
return rep_->size == 0; }
157 size_type
capacity ()
const {
return rep_->capacity; }
161 const char&
at (size_type index)
const
163 assert( index <
length() );
164 return rep_->str[ index ];
170 assert( index <
length() );
171 return rep_->str[ index ];
175 size_type
find (
char lookup)
const
177 return find(lookup, 0);
181 size_type
find (
char tofind, size_type offset)
const
185 for (
const char* p =
c_str() + offset; *p !=
'\0'; ++p)
187 if (*p == tofind)
return static_cast< size_type
>( p -
c_str() );
220 void init(size_type sz) { init(sz, sz); }
221 void set_size(size_type sz) { rep_->str[ rep_->size = sz ] =
'\0'; }
222 char* start()
const {
return rep_->str; }
223 char* finish()
const {
return rep_->str + rep_->size; }
231 void init(size_type sz, size_type cap)
240 const size_type bytesNeeded =
sizeof(Rep) + cap;
241 const size_type intsNeeded = ( bytesNeeded +
sizeof(int) - 1 ) /
sizeof( int );
242 rep_ =
reinterpret_cast<Rep*
>(
new int[ intsNeeded ] );
244 rep_->str[ rep_->size = sz ] =
'\0';
245 rep_->capacity = cap;
255 if (rep_ != &nullrep_)
259 delete [] (
reinterpret_cast<int*
>( rep_ ) );
318 #endif // MADNESS_TINYXML_TINYSTR_H__INCLUDED
319 #endif // TIXML_USE_STL
static const size_type npos
Definition: tinystr.h:74
bool operator>(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:280
void swap(TiXmlString &other)
Definition: tinystr.h:211
size_type find(char tofind, size_type offset) const
Definition: tinystr.h:181
TiXmlString operator+(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.cc:86
const char & at(size_type index) const
Definition: tinystr.h:161
bool operator<(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:274
size_type size() const
Definition: tinystr.h:151
TiXmlString(const TiXmlString ©)
Definition: tinystr.h:83
size_type capacity() const
Definition: tinystr.h:157
bool empty() const
Definition: tinystr.h:154
TiXmlString & operator+=(const char *suffix)
Definition: tinystr.h:123
TIXML_EXPLICIT TiXmlString(const char *str, size_type len)
Definition: tinystr.h:97
size_type length() const
Definition: tinystr.h:148
TiXmlString & assign(const char *str, size_type len)
Definition: tinystr.cc:54
TiXmlString & operator=(const char *copy)
Definition: tinystr.h:110
void reserve(size_type cap)
Definition: tinystr.cc:42
char & operator[](size_type index) const
Definition: tinystr.h:168
size_type find(char lookup) const
Definition: tinystr.h:175
~TiXmlString()
Definition: tinystr.h:104
void clear()
Definition: tinystr.h:192
Function< T, NDIM > copy(const Function< T, NDIM > &f, const std::shared_ptr< WorldDCPmapInterface< Key< NDIM > > > &pmap, bool fence=true)
Create a new copy of the function with different distribution and optional fence. ...
Definition: mra.h:1835
FLOAT a(int j, FLOAT z)
Definition: y1.cc:86
size_t size_type
Definition: tinystr.h:71
const char * c_str() const
Definition: tinystr.h:142
Definition: tinystr.h:298
bool operator==(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:269
TiXmlString & append(const char *str, size_type len)
Definition: tinystr.cc:73
bool operator>=(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:282
TIXML_EXPLICIT TiXmlString(const char *copy)
Definition: tinystr.h:90
const char * data() const
Definition: tinystr.h:145
bool operator!=(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:279
TiXmlOutStream & operator<<(const TiXmlString &in)
Definition: tinystr.h:303
#define TIXML_EXPLICIT
Definition: tinystr.h:56
bool operator<=(const TiXmlString &a, const TiXmlString &b)
Definition: tinystr.h:281
FLOAT b(int j, FLOAT z)
Definition: y1.cc:79
TiXmlString()
Definition: tinystr.h:78