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