我们的团队刚刚遇到了此处描述的相同问题http://forums.codeguru.com/archive/index.php/t-514404.html,即调用some_vec.resize(new_size)
,其中N = new_size - some_vec.size()
N >= 2 和 VC10 默认构造的所有 N 新元素,而 GCC 默认构造了一个元素,作为原型元素,为新元素复制构造它 N 次。
由于这是一个 uuid 向量,默认构造函数随机初始化每个新实例,因此我们最终得到 N 倍于 GCC 的相同 uuid 和 N 倍于 VC 的不同 uuid。这足以在一个平台上对我们的测试套件造成严重破坏,但在另一个平台上却没有,而且很难找到。
我的问题是:谁是对的?风投还是海合会?或者这是未指定的 C++ 中那些心爱的角落之一?TIA,--DD