Change: Non-const .data() member added.
Rationale: The lack of a non-const .data() differed from the similar member of std::vector. This change regularizes behavior for this International Standard.
Effect on original feature: Overloaded functions which have differing code paths for char* and const char* arguments will execute differently when called with a non-const string's .data() member in this International Standard.
int f(char *) = delete; int f(const char *); string s; int x = f(s.data()); // ill-formed; previously well-formed