【发布时间】:2014-11-17 17:22:16
【问题描述】:
我只是遇到了一些误解: 至少在 libc++ 实现中 std::experimental::string_view 有以下简洁的实现:
template <class _CharT, class _Traits....>
class basic_string_view {
public:
typedef _CharT value_type;
...
template <class _Allocator>
basic_string_view(const basic_string<_CharT, _Traits, _Allocator>& str):
__data(str.data()), __size(str.size())
{
}
private:
const value_type* __data;
size_type __size;
};
这个实现是否意味着如果我们将右值表达式传递给这个构造函数,我们会在构造后使用 __data 时得到未定义的行为?
【问题讨论】:
-
是的。
string_view只是一个美化的参考。
标签: c++ string c++11 fundamentals-ts string-view