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
You could use Boost.Optional.
#include
#include
using namespace std;
using namespace boost;
void func(optional& s) {
if (s) { // implicitly converts to bool
// string passed in
cout << *s << endl; // use * to get to the string
} else {
// no string passed in
}
}
To call it with a string:
string s;
func(optional(s));
and without a string:
func(optional());
Boost.Optional gives you a typesafe way to have nullable values without resorting to pointers and their associated problems.