Clang, std :: shared_ptr und std :: less / operator

8

Den folgenden Code haben

%Vor%

erzeugt den folgenden Fehler beim Kompilieren mit clang (Version 3.1, LLVM 3.1, Debian GNU / Linux Sid)

%Vor%

Wenn Sie denselben Code mit GCC (Version 4.7.0) kompilieren, werden keine Fehlermeldungen ausgegeben. Gibt es einen Grund, warum der Operator & lt; () nicht für geteilte Zeiger in clang funktioniert?

    
stschindler 20.06.2012, 08:04
quelle

1 Antwort

12

clang ++ und libstdc ++ passen noch nicht perfekt zusammen. Du könntest eines der folgenden Dinge tun:

  • Wechseln Sie zu libc ++ (indem Sie clang++ -stdlib=libc++ -std=c++11 ... verwenden)
  • Wenden Sie den folgenden Patch auf /usr/include/c++/4.7.0/type_traits an (wie in Ссылка dokumentiert):

    %Vor%

Wenn du bits/shared_ptr.h checkst, hast du std::common_type gefunden, und die Entwickler behaupten, dass es ist eigentlich ein Fehler von libstdc ++ , obwohl ich nicht glaube, dass ein Fehler von libstdc ++ alleine dazu führen würde, dass der nicht existierende Typ int*&&& erscheint.

    
kennytm 20.06.2012, 08:14
quelle

Tags und Links