Kompilieren in c++14

Also in meinem CSE-natürlich bekommen wir eine header-Datei zu verwenden, gerade jetzt für unsere Programme, die wir schreiben.

Leider kann ich nicht bekommen-terminal zum kompilieren verwenden, die header, es gibt durchaus ein paar Fehler (kompilieren nur mit 'g++'). Auch, wenn ich mich an meiner Universität, und ich bin mit PuTTY bekomme ich den gleichen Fehler während der Verwendung dieses header. Allerdings habe ich nicht den Fehler, wenn ich das kompilieren mit "g++ -std=c++14'.

Habe ich versucht zu kompilieren, die mit diesem Befehl in terminal auf meinem mac, aber es sagt, dass es nicht erkennen, die der c++ - 14 Teil.

dhcp-10-202-147-243:hw1pr1 Admin$ g++ -std=c++14 hw1pr1.cpp
error: invalid value 'c++14' in '-std=c++14'

Jede Hilfe, wie könnte ich diese zu arbeiten, wäre sehr dankbar. Hoffentlich alle gemacht, irgendeine Art von Sinn.

Hier ist die Fehlermeldung die ich bekomme, wenn ich zum Beispiel mit der header-Datei, die ich spreche, im terminal nur mit g++.

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_map:212:5: warning: 
      Use of the header <ext/hash_map> is deprecated. Migrate to <unordered_map>
      [-W#warnings]
#   warning Use of the header <ext/hash_map> is deprecated.  Migrate to ...
    ^
In file included from read_first_name.cpp:1:
./std_lib_facilities_4.h:43:20: error: no matching function for call to object
      of type 'hash<char *>'
            return hash<char*>()(s.c_str());
                   ^~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/__hash:39:12: note: 
      candidate function not viable: 1st argument ('const value_type *'
      (aka 'const char *')) would lose const qualifier
    size_t operator()(char *__c) const _NOEXCEPT
           ^
In file included from read_first_name.cpp:1:
./std_lib_facilities_4.h:112:8: warning: comparison of unsigned expression < 0
      is always false [-Wtautological-compare]
                if (i<0||size()<=i) throw Range_error(i);
                    ~^~
./std_lib_facilities_4.h:118:8: warning: comparison of unsigned expression < 0
      is always false [-Wtautological-compare]
                if (i<0||size()<=i) throw Range_error(i);
                    ~^~
3 warnings and 1 error generated.

Dieser Fehler nicht passieren, und das Programm wird kompiliert voll wenn ich mit PuTTY und "g++ - std=c++14'

Wäre es möglich zu posten der header-Datei, oder ist es zu lang?
Versuchen -std=c++1y bis der compiler aktualisiert. Da dieser Vorentwurf wurde verfolgt außergewöhnlich gut und ist nur ungefähr das gleiche wie der endgültige standard, das sollte gut genug sein.
Sie sollten überprüfen Sie die Versionen der standard-unterstützt von Ihrer version des Compilers.
APerson, die header-Datei 235 Linien, nicht sicher, was zu lang, aber ich überlege mir, dass ist.
Reduzieren Sie es auf eine MCVE, D. H. die kleinste kompilierbare Teilmenge der header, noch das problem veranschaulicht, und dann posten.

InformationsquelleAutor Joe | 2014-09-15

Schreibe einen Kommentar