C ++ std :: string и NULL const char *
Я работаю в C ++ с двумя большими кусками кода, один из которых сделан в "С стиль " и один в "Стиль С ++ ".
Код типа C имеет функции, которые возвращают const char *, а код C ++ во многих местах имеет такие вещи, как
const char* somecstylefunction();
...
std::string imacppstring = somecstylefunction();
где он строит строку из const char *, возвращаемого кодом стиля C.
Это работало до тех пор, пока код стиля C не изменился и иногда не начинал возвращать указатели NULL. Это, конечно, вызывает ошибки сегмента.
Вокруг много кода, и поэтому я хотел бы наиболее экономным способом решить эту проблему. Ожидаемое поведение - в этом случае imacppstring будет пустой строкой. Есть ли хорошее, гладкое решение для этого?
Обновить
Const char *, возвращаемый этими функциями, всегда является указателем на статические строки. Они использовались в основном для передачи информативных сообщений (предназначенных для регистрации, скорее всего) о любых неожиданных действиях в функции. Было решено, что при этих возвращаемых значениях NULL "Нечего докладывать" было хорошо, потому что тогда вы могли бы использовать возвращаемое значение в качестве условия, т.е.
if (somecstylefunction()) do_something;
тогда как раньше функции возвращали статическую строку "";
Была ли это хорошая идея, яЯ не собираюсь трогать этот код, и этовсе равно не до меня.
Чего я хотел избежать, так это отслеживания каждой инициализации строки для добавления функции-оболочки.