Assign a nullptr to a std::string is safe?

c++, std, string

Solution

Interesting little question. According to the C++11 standard, sect. 21.4.2.9,

basic_string(const charT* s, const Allocator& a = Allocator());

Requires: s shall not be a null pointer.

Since the standard does not ask the library to throw an exception when this particular requirement is not met, it would appear that passing a null pointer provoked undefined behavior.

Problem

I was working on a little project and came to a situation where the following happened: ``` std::string myString; #GetValue() returns a char* myString = myObject.GetValue(); ``` My question is if `GetValue()` returns NULL `myString` becomes an empty string? Is it undefined? or it will segfault?

Original source

Related problems