小编Bra*_*don的帖子

stl随机分布和可移植性

为什么标准发行版的结果不是强制要求在各实现之间保持一致?伪随机数生成器的结果对经授权的是相同的另一方面.

例如,以下几乎肯定会为每个不同的标准库实现打印不同的东西.

std::mt19937 random {100};
std::normal_distribution<> dist;

std::cout << dist(random);
Run Code Online (Sandbox Code Playgroud)

假设我想进行程序生成,并希望相同的起始种子在平台和编译器之间产生相同的结果.我无法用stl做到这一点.我必须"回归"使用提升.为什么这不是缺陷?

c++ random stl cross-platform c++11

8
推荐指数
1
解决办法
691
查看次数

std :: vector <T> :: value_type的正确行为

在我使用了一些模板代码中的一些错误后,std::vector::value_type我把它跟踪到以下内容.这是根据标准的正确行为,还是这是MSVC 2012 CTP的问题?

typedef std::vector<int>::value_type       t1;
typedef std::vector<int const>::value_type t2;

static_assert(!std::is_same<t1, t2>::value, "hmmm");
Run Code Online (Sandbox Code Playgroud)

上述断言失败了.

c++ visual-c++ c++11

5
推荐指数
1
解决办法
1339
查看次数

C++短路评估和优化

简单的问题,但令人惊讶的难以搜索.对于声明A && B我知道有评价之间的序列点AB,我知道评价的顺序是从左向右,但什么是允许这样做时,它可以证明一个编译器B始终是假的(甚至可能是明确地这样)?

也就是说,function_with_side_effects() && false是否允许编译器优化掉函数调用?

c++

3
推荐指数
1
解决办法
349
查看次数

标签 统计

c++ ×3

c++11 ×2

cross-platform ×1

random ×1

stl ×1

visual-c++ ×1