Als «clang» getaggte Fragen

Bei Fragen zum Clang LLVM Compiler Frontend. Verwenden Sie bei allgemeinen Fragen zu C das C-Tag.

4
Verwirrender Vorlagenfehler
Ich habe eine Weile mit Clang gespielt und bin auf "test / SemaTemplate / Dependent-Template-Recovery.cpp" (in der Clang-Distribution) gestoßen, das Hinweise zur Wiederherstellung nach einem Vorlagenfehler geben soll. Das Ganze lässt sich leicht auf ein minimales Beispiel reduzieren: template<typename T, typename U, int N> struct X { void f(T* t) …
87 c++  templates  llvm  clang 

4
Kann ich C ++ 11 mit Xcode verwenden?
Ich erwäge die Verwendung einiger C ++ 11-Funktionen (wie autozum Beispiel) in einigen plattformübergreifenden Projekten (Windows + Mac). Unter Windows unterstützt Visual Studio Teile des kommenden C ++ 11-Standards, mit denen ich Teile der Codebasis vereinfachen kann, sodass ich natürlich daran interessiert wäre, diese Funktionen zu verwenden. Soweit mir bekannt …
86 c++  xcode  gcc  c++11  clang 

1
Was bedeuten Clangs Schwache Tabellen?
Grundsätzlich verstehe ich Clangs nicht -Wweak-vtables. Folgendes habe ich bisher beobachtet: Fall eins: (löst die Warnung aus) class A { public: virtual ~A(){} }; class B : public A { public: virtual ~B(){} }; int main(){} Fall zwei: (löst keine Warnung aus) class A { public: virtual ~A(){} }; int …
78 c++  clang 


2
Warum generiert die Verwendung des ternären Operators zur Rückgabe einer Zeichenfolge einen erheblich anderen Code als die Rückgabe in einem äquivalenten if / else-Block?
Ich habe mit dem Compiler Explorer gespielt und bin auf ein interessantes Verhalten mit dem ternären Operator gestoßen, wenn ich so etwas verwendet habe: std::string get_string(bool b) { return b ? "Hello" : "Stack-overflow"; } Der vom Compiler generierte Code dafür (Clang Trunk, mit -O3) lautet wie folgt: get_string[abi:cxx11](bool): # …


9
Catalina C ++: Die Verwendung von <cmath> -Headern führt zu einem Fehler: Kein Mitglied mit dem Namen 'signbit' im globalen Namespace
Nach dem Upgrade von Mojave auf Catalina, Setup: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk in der Umgebung. Ich kann kein Programm kompilieren, das den &lt;cmath&gt;Header verwendet. Ich habe versucht, CFLAGS, CCFLAGS, CXXFLAGS so zu ändern, dass sie auf den MacOSSDK-Speicherort verweisen, der nichts ändert Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] …

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 &lt;iostream&gt; #include &lt;type_traits&gt; #include &lt;set&gt; template&lt;typename T, typename = void&gt; struct TestA: std::false_type {}; template&lt;typename T&gt; struct TestA&lt;T, std::void_t&lt;typename T::reverse_iterator&gt;&gt; : std::true_type {}; template&lt;typename T&gt; struct TestA&lt;T, …

1
Warum funktioniert std :: swap nicht mit Vektorelementen <bool> unter Clang / Win?
Ich habe folgenden Code: #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } Argumente über die Vernunft vector&lt;bool&gt;beiseite, das funktionierte gut bei: Clang für Mac Visual Studio für Windows GCC für Linux Dann habe ich versucht, es mit Clang unter Windows zu erstellen und habe den …



1
Konfigurieren Sie CMake in Windows so, dass Clang über die Befehlszeile verwendet wird, um moderne OpenMP-Unterstützung zu erhalten
Ich habe ein kleines Testprojekt , das OpenMP für Parallelisierung verwendet. Mein Ziel ist es, es so zu kompilieren, dass es produziert .dllund .libfür Bibliotheken (da mein reales Projekt Links zu externen Bibliotheken enthält, die mit diesen Typen verteilt werden), mit Unterstützung für OpenMP 4.5 oder neuer, und dies über …


3
Kann nullptr in uintptr_t konvertiert werden? Verschiedene Compiler sind sich nicht einig
Betrachten Sie dieses Programm: #include &lt;cstdint&gt; 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: &lt;source&gt;(5): error C2440: '&lt;function-style-cast&gt;': cannot convert from 'nullptr' to 'my_time_t' &lt;source&gt;(5): note: A native nullptr can only be converted to bool or, using …
10 c++  c++11  gcc  visual-c++  clang 

1
Problem in GCC / C ++ 17 mit Vorlagenvorlagenklasse
Betrachten Sie die 2 folgenden Überlastungen template&lt;typename T&gt; bool test() { return true; } template&lt;template&lt;typename ...&gt; class T&gt; bool test() { return false; } Der erste funktioniert für reguläre Klassen, während der zweite für Vorlagen funktioniert, die nicht instanziiert sind. Zum Beispiel: std::cout&lt;&lt;test&lt;int&gt;()&lt;&lt;std::endl; &lt;-- this yields 1 std::cout&lt;&lt;test&lt;std::list&gt;()&lt;&lt;std::endl; &lt;--this yields …
10 c++  templates  gcc  clang  c++17 

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.