std::string sAttr("");
sAttr = sAttr+VAL_TAG_OPEN+sVal->c_str()+VAL_TAG_CLOSE;
否則運行時的依賴性,其中在所述代碼中,我已經定義爲的std :: string級聯
const char VAL_TAG_OPEN[] = "<value>";
sVal
是斷開串的指針的陣列的檢索到的變量。這在大多數系統,windows和linux中都可以正常工作。然而,在一個客戶站點,我認爲我的信仰有一個我們已經做了一些廣泛的測試的Linux版本,產生一個結果,就好像我從未使用過VAL_TAG_OPEN
和VAL_TAG_CLOSE
。我收到的結果是針對
sAttr = sAttr+sVal->c_str();
發生了什麼事? std :: string連接是否在運行時變化?
它很可能是(* SVAL),但當然有人會問爲什麼要使用一個指針這裏如果引用就足夠了(永久的std :: string常量和參數,我猜)。 – gimpf 2009-02-12 11:19:10
sVal是一個指向std :: string的指針。 此外,sVal是唯一可以追加的東西。 – rptony 2009-02-12 11:19:53
我明白了,我只是在問題之前看到了答案,我的老習慣。 – gimpf 2009-02-12 11:28:17