Выполняя небольшой школьный проект, я только заметил разницу в диапазоне std::uniform_int_distribution<int>
:
При использовании g ++ диапазон составляет [a, b], однако при использовании msvc (Visual Studio 2010)диапазон (a, b], поэтому вывод следующей программы:
#include <iostream>
#include <random>
using std::cout;
using std::cin;
int main()
{
std::mt19937 random;
std::uniform_int_distribution<int> intDist(-1, 1);
for(int i = 0; i < 100; i++)
{
cout << intDist(random) << "\n";
}
cin.get();
}
будет отображать -1 в какой-то момент при использовании g ++, но никогда не будет отображать -1 при использовании msvc.
Я знаю, что такие различия существуют между компиляторами, но в документации MSDN и стандартной отметке, что диапазон должен быть [a, b].
В чем причина такого поведения?