Boost / any_iterator.hpp kann nicht in Boost 1.57 kompiliert werden

8

Nach dem Versuch, ein VS2012-Projekt auf Boost 1.57 zu aktualisieren, kann ich nicht mehr kompilieren - viele und viele Fehlermeldungen kommen aus boost/any_iterator.hpp (siehe unten). Als Test habe ich ein neues Projekt erstellt, das nichts als eine leere Hauptfunktion und #include "boost/any_iterator.hpp" enthielt und die gleichen Fehler enthielt. Hier ist der Code, über den er sich beschwert:

%Vor%

Es gibt eine andere Klasse in derselben Datei, die demselben Muster folgt und identische Fehler erzeugt. range_detail::any_iterator wird in der Datei etwas höher deklariert:

%Vor%

Für das, was es wert ist, hier ist die Reihe von Fehlern, die ich von VS2012 bekomme:

%Vor%

Kennt jemand eine Problemumgehung?

    
dlf 05.11.2014, 14:38
quelle

1 Antwort

10

Dies scheint ein Fehler in der Boost-Codebasis zu sein. postfix_increment_proxy und writable_postfix_increment_proxy befinden sich beide im Namespace boost::iterators::detail (iterator_facade.hpp). Beide Namen werden jedoch in any_iterator.hpp uneingeschränkt verwendet. Das Hinzufügen von boost::iterators::detail:: vor beiden Namen ermöglicht die Kompilierung des Codes.

Wer sich mit der Idee, den Boost-Code zu bearbeiten, unwohl fühlt, einschließlich iterator_facade.hpp, gefolgt von using namespace boost::iterators::detail , gefolgt von einem Include für any_iterator.hpp, wird das Problem auf Kosten der Namensraumverschmutzung lösen. VS2012 unterstützt sie nicht, also tut es mir nicht gut, aber Sie könnten vermutlich auch ein C ++ 11 verwenden.

Ticket eingereicht: Ссылка

    
dlf 05.11.2014, 15:12
quelle

Tags und Links