Pseudo-random fehler bei std

In diesem Bereich sind Themen vom Themenersteller als erledigt zu markieren, wenn die Frage beantwortet oder das Problem gelöst wurde. Das Thema wird daraufhin automatisch geschlossen.
Klicke hierzu auf "Thema bearbeiten > Als erledigt markieren".
  • Hey, ich hab folgendes Problem...
    Ich möchte etwas einbauen und erhalte permanent bei dem einen Fehler


    Ich benötige folgendes "Pseudo-radmon number generation"


    Der Codeblock:
    std::random_device rd;
    std::mt19937 gen(rd());
    std::discrete_distribution<> d({ 200, 100, 20, 10, 5, 1 });


    #define std std -> ist vorhanden.


    in der Windowsversion vom Source wird mir folgendes angezeigt:
    namespace "std" has no member "random_device"
    namespace "std" has no member "mt19937"
    namespace "std" has no member "discrete_distribution"


    Ich compile via Freebsd.


    Diese Fehlermeldungen erhalte ich beim compilen:
    char_item.cpp:8462: error: 'nullptr' was not declared in this scope
    char_item.cpp:8475: error: 'nullptr' was not declared in this scope
    char_item.cpp:8582: error: 'nullptr' was not declared in this scope
    char_item.cpp:8858: error: 'random_device' is not a member of 'std'
    char_item.cpp:8858: error: expected `;' before 'rd'
    char_item.cpp:8859: error: 'mt19937' is not a member of 'std'
    char_item.cpp:8859: error: expected `;' before 'gen'
    char_item.cpp:8860: error: 'discrete_distribution' is not a member of 'std'
    char_item.cpp:8860: error: expected primary-expression before '>' token
    char_item.cpp:8860: error: expected primary-expression before '{' token
    char_item.cpp:8860: error: 'd' was not declared in this scope
    char_item.cpp:8862: error: 'gen' was not declared in this scope


    Ich habe in div. C++ Foren nachgeschaut um das problem selbst zu lösen - nur finde ich:
    "random is not a standard C++ function; it's a POSIX function"
    "use the new C++11 randomness library."
    "That header is new to C++11. Try using -std=c++11 or -std=c++0x. Also, make sure your compiler is up to date."


    Ich habe bereits folgendes versucht:
    #include <cstdlib>
    #include <stdlib.h>
    #include <random> -> fatal error: 'random' file not found


    einzufügen - jedoch bringt das nichts.


    Desweiteren versuchte ich bei den CFLAGS folgendes hinzuzufügen:
    -std=c++11
    oder
    -std=c++0x
    bekam nur Fehlermeldungen


    Jemand eine Lösung wie ich die Pseudo-randoms zum funktionieren bekomme?


    Danke schon mal...
    LG

  • Dieses Thema enthält 4 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.