我刚发现xcode / clang不允许从char * nullptr构造一个std :: string_view。我希望这会将size()设置为0并为data()返回null,这也是我的Ubuntu Linux机箱上的gcc 7.2如何实现它的方式。
我查了http://en.cppreference.com/但是找不到任何关于此的评论,那么标准的说法是什么?
答案 0 :(得分:2)
嗯,是的,不是。你不能将空指针传递给std::string_view
的构造函数,因为这会违反它们的前提条件;请参阅[string.view.cons]中的构造函数2和3。
但是std::string_view
的默认构造函数将大小设置为零并且其数据为null,因此您必须使用该构造函数,或者使用此变通方法/技巧:
std::string_view().swap(your_string);