Ich bekam Problem mit umfasst in Visual Studio. Ich möchte das Projekt sowohl für Windows als auch für Linux kompilieren.Visual Studio einschließlich Sichtbarkeit
in Visual Studio, habe ich eine kleine Klasse in .hpp-Datei, die std::exception
und std::is_pod<T>
verwendet, aber ich type_traits
noch stdexcept
nicht enthalten !! Und die Datei kompiliert einfach mit Visual Studio! Warum?
tun so auf Linux gibt mir Fehler
In file included from Packet.hpp:3:0,
from AbstractPacketFactory.hpp:2,
from AuthenticationPacketFactory.hpp:2,
from AuthenticationPacketFactory.cpp:1:
ByteSerializer.hpp: In member function ‘byte_serializer& byte_serializer::operator>>(T&)’:
Linux g ++ ist richtig - warum Visual Studio mich nicht gewarnt? Kann ich etwas dagegen tun? Ich verwende VS als meine primäre IDE und möchte solche Überraschungen in Zukunft vermeiden (derzeit gibt es 50 Fehler wie diese ...)
Es gibt keine Voraussetzung für die C++ - Standardbibliothek ** nicht ** andere Dateien einzuschließen, solange die Als-wenn-Regel gilt. Die C++ - Standardbibliothek, die im Lieferumfang von Visual Studio enthalten ist (welche Version verwenden Sie trotzdem?) Scheint Headerdateien für die eigene Implementierung zu enthalten. Wenn Sie das beheben müssen, können Sie nichts anderes tun, als es für alle Zielplattformen zu kompilieren. – IInspectable
Diese sind wahrscheinlich von einer anderen Standard-Header enthalten, die Sie enthalten haben. – drescherjm