Это не является частью стандарта C ++ (но, возможно, так и должно быть?)
Я использую вспомогательную функцию того же типа, чтобы избежать выдачи исключения std :: string со строкой NULL char *. Но это было что-то вроде:
// defined somewhere else as ""
extern const char * const g_strEmptyString ;
inline const char * safe_string(const char * p)
{
return (p) ? (p) : (g_strEmptyString) ;
}
Никаких накладных расходов и сбоя std :: string, когда я передаю ей строку char *, которая может быть NULL, но в данном конкретном случае должна вести себя как пустая строка