Chiharu の日記

絵描き C/C++ プログラマーの日記です。

C++0x の乱数 〜あれれ?

std::uniform_int_distribution って負の値を正常に返せないのかな。VC でしか試していないのですが、んー。なんでなんだろ。

std::mt19937 aRandEngine;
std::uniform_int_distribution<int> aRandDist(-2, 2);
const auto aRand = aRandDist(aRandEngine); // -2 が出ない…

仕方ないので、下駄履かせて対応してみました。

std::mt19937 aRandEngine;
std::uniform_int_distribution<int> aRandDist(0, 4);
const auto aRand = aRandDist(aRandEngine) - 2; // 要件は満たすけど…

んー。なんだか腑に落ちません。