summaryrefslogtreecommitdiff
path: root/src/strings/rstring.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/strings/rstring.hpp')
-rw-r--r--src/strings/rstring.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/strings/rstring.hpp b/src/strings/rstring.hpp
index fd3ee65..ad44beb 100644
--- a/src/strings/rstring.hpp
+++ b/src/strings/rstring.hpp
@@ -39,15 +39,17 @@ namespace strings
size_t size;
char body[];
};
- static
- uint8_t empty_string_rep[sizeof(Rep) + 1];
- Rep *owned;
+ union
+ {
+ Rep *owned;
+ const char *begin;
+ } u;
+ const char *maybe_end;
- template<class It>
- void _assign(It b, It e);
public:
RString();
+ RString(LString s);
RString(const RString&);
RString(RString&&);
RString& operator = (const RString&);
@@ -68,7 +70,6 @@ namespace strings
RString(XString);
template<uint8_t n>
RString(const VString<n>& v);
- RString(LString s);
iterator begin() const;
iterator end() const;