kimgr added inline comments. ================ Comment at: include/string_view:216 @@ +215,3 @@ + basic_string_view(const _CharT* __s) + : __data(__s), __size(_Traits::length(__s)) {} + ---------------- mclow.lists wrote: > kimgr wrote: > > I'm working from the paper at https://isocpp.org/files/papers/N3762.html, > > and I find it a little sketchy on the policy for nullptrs. > > > > Since the ctor above accepts nullptr as long as the length is zero, would > > it make sense to do that here too? That is, only call _Traits::length for > > non-nullptr __s args? > Reading from N4600: Requires: `[str, str + traits::length(str))` is a valid > range. > > So, no - passing `nullptr` here is undefined. > OK, that feels more principled to me, anyway.
But the `(const char*, size_t)` constructor has the same requirement and it *does* accept `nullptr`, provided the length is zero. I saw you had to get rid of the assertion, but I feel like the constructor should probably not silently accept `nullptr` for zero-sized strings. Or do you know if that's intentional? Many StringRef/StringPiece implementations seem to have the same behavior. https://reviews.llvm.org/D21459 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits