std::string sAttr("");
sAttr = sAttr+VAL_TAG_OPEN+sVal->c_str()+VAL_TAG_CLOSE;
еще где в коде я определилвыполнения зависимостей для станд :: конкатенации
const char VAL_TAG_OPEN[] = "<value>";
sVal
является переменной, которая извлекается прочь массив строковых указателей. Это отлично работает в большинстве систем, окон и Linux. Однако на сайте клиента, где, как я полагаю, есть версия Linux, на которой мы провели некоторое тщательное тестирование, произведите результат, как если бы я никогда не использовал VAL_TAG_OPEN
и VAL_TAG_CLOSE
. Полученные результаты приведены для
sAttr = sAttr+sVal->c_str();
Что происходит?. Содержит ли std :: string конкатенация в зависимости от времени выполнения?
Возможно, это будет (* sVal), но, конечно, может возникнуть вопрос, зачем использовать указатель здесь, если ссылки должны быть достаточными (как мне кажется, постоянный std :: string const & parameter). – gimpf
sVal является указателем на std :: string. Кроме того, sVal - это единственное, что добавляется в любом случае. – rptony
Вижу, я только что прочитал ответ перед вопросом, старая дурная привычка. – gimpf