In einem meiner letzten Projekte habe ich die Entwicklungsarbeit an Ubuntu (cmake + gcc 4.8.4) gemacht. Der Code baut gut auf. Wenn ich jedoch versuche, denselben Code in cygwin (cmake + gcc 5.3) zu erstellen, erhalte ich einen Compilerfehler für std :: bind. Dies geht weg auf eine #include <functional>
. Das beunruhigt mich ein wenig. Ich erwarte, dass mein Code für identische oder sehr ähnliche Compiler funktioniert.std :: bind compiler fehler gcc
Ich habe gerade ein Stück Code verschickt, das auf einem CentOS verwendet wird. Ich nahm einfach an, dass, weil mein Code mit Ubuntu gut baut, andere Linux-Distributionen mit einem ähnlichen Compiler kein Problem sein sollten. Ich bin mir jedoch nicht mehr sicher, ob mein Code auf CentOS gut funktioniert.
Meine Frage ist dies. Kann ich davon ausgehen, dass, wenn mein Code mit einer bestimmten Version von gcc auf meinem Ubuntu-Rechner gut funktioniert, er auch auf anderen Linux-Distributionen mit derselben oder einer höheren Version von gcc gut funktioniert? Oder bin ich zu optimistisch und sollte mich auf mehr Tests verlassen? Oder hat das etwas mit std :: bind selbst zu tun?
Die Funktion ['std :: bind'] (http://en.cppreference.com/w/cpp/utility/functional/bind) ist in der Standard-Header-Datei'' deklariert. Nur weil Sie Glück haben, dass eine andere Header-Datei nur zufällig darin enthalten ist, bedeutet das nichts. Wenn Sie 'std :: bind' verwenden wollen, sollten Sie' 'explizit angeben. –
Haben Sie Ihre Frage in der Frage nicht beantwortet? Ich bin verwirrt. –