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;

тогда как раньше функции возвращали статическую строку "";

Была ли это хорошая идея, яЯ не собираюсь трогать этот код, и этовсе равно не до меня.

Чего я хотел избежать, так это отслеживания каждой инициализации строки для добавления функции-оболочки.

Ответы на вопрос(7)

Ваш ответ на вопрос