2013-04-12 14 views
5

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?

+2

4.4 jest dość stary, zwłaszcza jeśli chodzi o zgodność z C++ 11. – PlasmaHH

+0

Wszystko przed wersją 4.7 jest dość nieliczne dla obsługi C++ 11. –

Odpowiedz

Powiązane problemy