Pracuję na serwerze z GCC w wersji 4.4.7 i jestem zmuszony do pracy z tą wersją niestety. Chcę korzystać z biblioteki C++ 0x <random>
, ale czytam here, że w tej wersji uniform_real_distribution
nazywa się uniform_real
. Kiedy próbuję wywołać tę funkcję i normal_distribution
, nie otrzymuję użytecznego wyniku. Zobacz ten przykład:problemy z biblioteką C++ 11 i g ++ 4.4.7
#include <random>
#include <iostream>
using namespace std;
int main()
{
typedef std::mt19937 Engine;
typedef std::uniform_real<double> Dis1;
typedef std::normal_distribution<double> Dis2;
Engine eng(0);
Dis1 dis1(0, 1);
cout << dis1(eng) << endl; //OUTPUTS 3.49921e+09
Dis2 dis2(0, 1);
cout << dis2(eng) << endl; //STALLS, NO OUTPUT
return 0;
}
Kompiluję z g++44 -std=c++0x main.cpp
i pokazałem, jakie dane wyjściowe otrzymuję. Jaki jest problem?
4.4 jest dość stary, zwłaszcza jeśli chodzi o zgodność z C++ 11. – PlasmaHH
Wszystko przed wersją 4.7 jest dość nieliczne dla obsługi C++ 11. –