Loading...
Searching...
No Matches
dstringt Class Referencefinal
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
More...
#include <dstring.h>
Move constructor.
Move assignment.
std::string::const_iterator
end ()
const
Static Public Member Functions
Detailed Description
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
This makes it expensive to create a new string(because you have to look through the whole table to see if it is already there, and add it if it isn't) but very cheap to compare strings (just compare the two integers). It also means that when you have lots of copies of the same string you only have to store the whole string once, which saves space.
irep_idt is typedef-ed to dstringt in irep.h.
Note: Marked final to disable inheritance. No virtual destructor, so runtime-polymorphic use would be unsafe.
Definition at line 37 of file dstring.h.
Constructor & Destructor Documentation
◆ dstringt() [1/7]
dstringt::dstringt
(
)
inline
◆ dstringt() [2/7]
◆ dstringt() [3/7]
dstringt::dstringt
(
std::string_view
s )
inline
◆ dstringt() [4/7]
dstringt::dstringt
(
const std::string &
s )
inline
◆ dstringt() [5/7]
◆ dstringt() [6/7]
dstringt::dstringt
(
dstringt &&
other )
inline
Move constructor.
There is no need and no point in actually destroying the source object other, this is effectively just a copy constructor.
Definition at line 94 of file dstring.h.
◆ dstringt() [7/7]
Member Function Documentation
◆ as_string()
const std::string & dstringt::as_string
(
)
const
inlineprivate
◆ begin()
std::string::const_iterator dstringt::begin
(
)
const
inline
◆ c_str()
◆ clear()
◆ compare()
◆ empty()
bool dstringt::empty
(
)
const
inline
◆ end()
std::string::const_iterator dstringt::end
(
)
const
inline
◆ get_no()
◆ hash()
size_t dstringt::hash
(
)
const
inline
◆ make_from_table_index()
◆ operator!=() [1/3]
◆ operator!=() [2/3]
◆ operator!=() [3/3]
bool dstringt::operator!=
(
const std::string &
b )
const
inline
◆ operator<() [1/2]
◆ operator<() [2/2]
bool dstringt::operator<
(
const std::string &
b )
const
inline
◆ operator<<()
std::ostream & dstringt::operator<<
(
std::ostream &
out )
const
◆ operator<=()
bool dstringt::operator<=
(
const std::string &
b )
const
inline
◆ operator=() [1/2]
◆ operator=() [2/2]
Move assignment.
There is no need and no point in actually destroying the source object other, this is effectively just an assignment.
Definition at line 182 of file dstring.h.
◆ operator==() [1/3]
◆ operator==() [2/3]
◆ operator==() [3/3]
bool dstringt::operator==
(
const std::string &
b )
const
inline
◆ operator>()
bool dstringt::operator>
(
const std::string &
b )
const
inline
◆ operator>=()
bool dstringt::operator>=
(
const std::string &
b )
const
inline
◆ operator[]()
◆ size()
size_t dstringt::size
(
)
const
inline
◆ starts_with() [1/2]
◆ starts_with() [2/2]
bool dstringt::starts_with
(
std::string_view
prefix )
const
inline
◆ swap()
Member Data Documentation
◆ no
The documentation for this class was generated from the following files: