Die folgenden Verwendungen von std :: visit kompilieren ordnungsgemäß unter gcc 7.2, können aber nicht unter clang 5.0 kompiliert werden. Weiß jemand, was das Problem ist?
%Vor%Der erste Fehler ist dies:
%Vor%Hier ist ein Link zu godbolt, der diesen Fehler zeigt: Ссылка
Dies ist bekannt als Fehler 33222 , der sich nur auf libstdc ++ 's std::variant
(und andere Konstrukte, die dieselbe Kombination verwenden) auswirkt. Das Problem hängt mit der Funktion friend to template zusammen - siehe den Thread für weitere Details.
Die Variante von libc ++ scheint nicht die Technik von Freunden zu verwenden, die libstdc ++ benutzt hat, daher solltest du in der Zwischenzeit vorübergehend auf libc ++ wechseln.