2013-04-12 14 views
5

Sto lavorando su un server con GCC versione 4.4.7, e sono costretto a lavorare con questa versione sfortunatamente. Voglio utilizzare la libreria <random> di C++ 0x, ma ho letto here che in questa versione uniform_real_distribution è chiamato uniform_real. Quando provo a chiamare questa funzione e normal_distribution, non ottengo risultati utili. Vedere questo esempio:problemi con C++ 11-library e 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; 
} 

posso compilare con g++44 -std=c++0x main.cpp e mi hanno mostrato quello che ottengo in uscita. Qual è il problema qui?

+2

4.4 è piuttosto vecchio, soprattutto quando si tratta di conformità C++ 11. – PlasmaHH

+0

Qualcosa prima di 4.7 è piuttosto scarso per il supporto C++ 11. –

risposta