I have a function foo(const std::string& str);
that it does crash if you call it using foo(NULL)
.
What can I do to prevent it from cras
std::string has a constructor that takes a const char* parameter. That's constructor is going to crash when you pass NULL to it, and that constructor is called implicitly when you write foo(NULL).
The only solution I can think of is to overload foo
void foo(const std::string& str)
{
// your function
}
void foo(const char* cstr)
{
if (cstr == NULL)
// do something
else
foo(std::string(cstr)); // call regular funciton
}