Als «visual-c++» getaggte Fragen

Microsoft Visual C ++ ist ein C-, C ++ - und C ++ / CLI-Compiler für Windows. Die neueste Version des Compilers ist Visual C ++ 2019. Der Compiler unterstützt die folgenden Sprachen: C (unterstützt C90 und die meisten C99- und C11-Teile des ISO C ++ - Standards ab Visual Studio 2019); C ++ (Unterstützung für die meisten C ++ 11-, C ++ 14- und C ++ 17-Funktionen sowie einige C ++ 20-Funktionen ab Visual Studio 2019) C ++ / CLI (Interoperabilität mit .NET-Sprachen wie C #).

1
Clang kompiliert keinen Code, aber gcc und msvc haben ihn kompiliert
Ich verstehe nicht, was das Problem ist: entweder in meinem Code oder im Compiler (weniger möglich). Es gibt einen Code wie diesen: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …

1
Möglicher Compilerfehler in MSVC
Der folgende Code wird mit gcc und clang (und vielen anderen C ++ 11-Compilern) kompiliert. #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = to_datatype<T>::value) {} …
13 c++  c++11  visual-c++ 


3
Kann nullptr in uintptr_t konvertiert werden? Verschiedene Compiler sind sich nicht einig
Betrachten Sie dieses Programm: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Es konnte nicht mit msvc v19.24 kompiliert werden: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using …
10 c++  c++11  gcc  visual-c++  clang 


1
Kann ein Compiler die Implementierung eines implizit deklarierten virtuellen Destruktors in einer einzelnen separaten Übersetzungseinheit platzieren?
Der folgende Code kompiliert und verknüpft mit Visual Studio(sowohl 2017 als auch 2019 mit /permissive-), kompiliert jedoch nicht mit entweder gccoder clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct Bar; std::unique_ptr<Bar> bar_; }; foo.cpp …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.