Ho appena incontrato qualche incomprensione: almeno in libC++ realizzazione std :: :: sperimentale string_view ha la seguente implementazione concisa:comportamento string_view quando passa std :: string temporanea
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;
};
Questo implementazione implica che se passiamo un'espressione rvalue a questo costruttore, otterremo un comportamento indefinito quando usiamo __data dopo la costruzione?
Già. Un 'string_view' è solo un riferimento glorificato. – Rapptz
[Vedi anche] (http://stackoverflow.com/q/20803826/596781). –