我可以从nullptr构造一个string_view吗?

时间:2017-11-11 17:16:39

标签: c++ string view

我刚发现xcode / clang不允许从char * nullptr构造一个std :: string_view。我希望这会将size()设置为0并为data()返回null,这也是我的Ubuntu Linux机箱上的gcc 7.2如何实现它的方式。

我查了http://en.cppreference.com/但是找不到任何关于此的评论,那么标准的说法是什么?

1 个答案:

答案 0 :(得分:2)

嗯,是的,不是。你不能将空指针传递给std::string_view的构造函数,因为这会违反它们的前提条件;请参阅[string.view.cons]中的构造函数2和3。

但是std::string_view的默认构造函数将大小设置为零并且其数据为null,因此您必须使用该构造函数,或者使用此变通方法/技巧:

std::string_view().swap(your_string);