diff --git a/ostd/string.hh b/ostd/string.hh index 8f8a100..02c2840 100644 --- a/ostd/string.hh +++ b/ostd/string.hh @@ -42,7 +42,7 @@ public: template CharRangeBase(U beg, EnableIf< IsConvertible::value && !IsArray::value, Nat - > = Nat()): p_beg(beg), p_end((T *)beg + strlen(beg)) {} + > = Nat()): p_beg(beg), p_end((T *)beg + (beg ? strlen(beg) : 0)) {} template CharRangeBase(U (&beg)[N], EnableIf< @@ -71,7 +71,7 @@ public: } /* TODO: traits for utf-16/utf-32 string lengths, for now assume char */ CharRangeBase &operator=(T *s) { - p_beg = s; p_end = s + strlen(s); return *this; + p_beg = s; p_end = s + (s ? strlen(s) : 0); return *this; } bool empty() const { return p_beg == p_end; }