Я просто столкнулся с некоторым недоразумением: по крайней мере, в реализации 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;
};
Означает ли эта реализация, что если мы передадим выражение rvalue в этот конструктор, мы получим неопределенное поведение при использовании __data после построения?
string_view
— это просто прославленная ссылка. - person Rapptz   schedule 17.11.2014