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:
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:
Für das, was es wert ist, hier ist die Reihe von Fehlern, die ich von VS2012 bekomme:
%Vor%Kennt jemand eine Problemumgehung?
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: Ссылка
Tags und Links c++ boost compiler-errors