C++ Ranges fail mit Clang Compiler

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Matthias Gubisch
Establishment
Beiträge: 382
Registriert: 01.03.2009, 19:09

C++ Ranges fail mit Clang Compiler

Beitrag von Matthias Gubisch »

Hallo Leute

ich brauche mal euer Schwarmwissen...

Ich habe ein relativ simples Stück Code:

Code: Alles auswählen

#include <ranges>
#include <unordered_map>
#include <cstdint>
#include <vector>
#include <string>

int main() {
    std::unordered_map<std::string, uint32_t> m;    

    auto kv = std::views::values(m);
	std::vector<uint32_t> flat_meshes{ kv.begin(), kv.end() };

}
Das baut unter VS2022 sowohl mit MSVC als auch mit dem Integrierten Clang (14), es baut auch mit gcc (12.2)
Es baut aber nicht unter Linux mit Clang.

Hier ein Godbolt Link in dem man die Fehlermeldung schön sehen kann:
https://godbolt.org/z/rnjjdTznn

Soweit ich das sehe sollten Ranges spätestens mit Clang 15.0 vollständig supported sein.
Hat jemand eine Idee warum das unter Windows mit der gleichen Clang Version baut, unter Linux aber nicht?
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 455
Registriert: 05.07.2003, 11:17

Re: C++ Ranges fail mit Clang Compiler

Beitrag von Lord Delvin »

Mal die ganz blöde Frage: Welche clang version steckt in deinem Buildcontainer? Auf meinem Rechner wäre das das hier:

Code: Alles auswählen

$ aptitude show clang
Package: clang                           
Version: 1:10.0-50~exp1
...
XML/JSON in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Matthias Gubisch
Establishment
Beiträge: 382
Registriert: 01.03.2009, 19:09

Re: C++ Ranges fail mit Clang Compiler

Beitrag von Matthias Gubisch »

Alle builds nutzen Clang 14
Zumindest sofern ich dem configure output von cmake glauben darf...

Im godbolt link ist glaub ich clang-15 eingestellt, war zum testen, die errors sind mit 14 aber die gleichen
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Matthias Gubisch
Establishment
Beiträge: 382
Registriert: 01.03.2009, 19:09

Re: C++ Ranges fail mit Clang Compiler

Beitrag von Matthias Gubisch »

Mittlerweile bin ich etwas schlauer was das Problem betrifft
Das scheint ein Bug in Clang zu sein.

https://github.com/llvm/llvm-project/issues/52696

Und angeblich ist der seit 2 Tagen gefixed.

Die Frage warum der mit VS mitgelieferte Clang unter Windows baut bleibt aber...
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
dot
Establishment
Beiträge: 1682
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: C++ Ranges fail mit Clang Compiler

Beitrag von dot »

Matthias Gubisch hat geschrieben: 25.09.2022, 17:34Die Frage warum der mit VS mitgelieferte Clang unter Windows baut bleibt aber...
Unter Windows verwendet clang standardmäßig afaik die MSVC stdlib und nicht libstdc++…
Antworten