$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-12-17 11:38:04
At 06:23 AM 12/17/2003, Bronek Kozicki wrote:
 >I have two errors while building boost on MSVC71 (toolset vc7.1).
 >Apparently boost::filesystem::directory_iterator should have member
 >functions "decrement" and "advance", but these functions do not exist,
 >at least on my platform.
It is more complicated than that. boost::filesystem::directory_iterator is 
an input iterator. It is specified like this:
     class BOOST_FILESYSTEM_DECL directory_iterator
       : public boost::iterator_facade<
       directory_iterator,
       path,
       boost::single_pass_traversal_tag >
Perhaps I've got that wrong, but it has worked since the new-style 
iterator_facade was introduced, and it still compiles fine and passes all 
tests when built as a static library. See today's regression tests.
The problem arises only when it is built as a Windows DLL.
I could use some help on this. I don't understand why building as a DLL 
causes boost::iterator_facade to instantiate differently. Is the 
BOOST_FILESYSTEM_DECL the problem, and if so, what is the fix?
Thanks,
--Beman
 >
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(294) : error C2039: 'decrement' : is not a member of
 >'boost::filesystem::directory_iterator'
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\filesystem\operations.hp
 >p(80) : see declaration of 'boost::filesystem::directory_iterator'
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(414) : see reference to function template instantiation 'void
 >boost::iterator_core_access::decrement<Derived>(Facade &)' being compiled
 >        with
 >        [
 >            Derived=boost::filesystem::directory_iterator,
 >            Facade=boost::filesystem::directory_iterator
 >        ]
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(413) : while compiling class-template member function
 >'boost::filesystem::directory_iterator
 >&boost::iterator_facade<Derived,Value,CategoryOrTraversal>::operator
 >--(void)'
 >        with
 >        [
 >            Derived=boost::filesystem::directory_iterator,
 >            Value=boost::filesystem::path,
 >            CategoryOrTraversal=boost::single_pass_traversal_tag
 >        ]
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\filesystem\operations.hp
 >p(84) : see reference to class template instantiation
 >'boost::iterator_facade<Derived,Value,CategoryOrTraversal>' being 
compiled
 >        with
 >        [
 >            Derived=boost::filesystem::directory_iterator,
 >            Value=boost::filesystem::path,
 >            CategoryOrTraversal=boost::single_pass_traversal_tag
 >        ]
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(306) : error C2039: 'advance' : is not a member of
 >'boost::filesystem::directory_iterator'
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\filesystem\operations.hp
 >p(80) : see declaration of 'boost::filesystem::directory_iterator'
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(427) : see reference to function template instantiation 'void
 >boost::iterator_core_access::advance<Derived>(Facade
 >&,boost::iterator_facade<Derived,Value,CategoryOrTraversal>::difference_type
 >)' being compiled
 >        with
 >        [
 >            Derived=boost::filesystem::directory_iterator,
 >            Facade=boost::filesystem::directory_iterator,
 >            Value=boost::filesystem::path,
 >            CategoryOrTraversal=boost::single_pass_traversal_tag
 >        ]
 >
 >C:\WINGNU\msys\1.0\home\Bronislaw\boost\boost\boost\iterator\iterator_facade
 >.hpp(426) : while compiling class-template member function
 >'boost::filesystem::directory_iterator
 >&boost::iterator_facade<Derived,Value,CategoryOrTraversal>::operator
 >+=(boost::iterator_facade<Derived,Value,CategoryOrTraversal>::difference_typ
 >e)'
 >        with
 >        [
 >            Derived=boost::filesystem::directory_iterator,
 >            Value=boost::filesystem::path,
 >            CategoryOrTraversal=boost::single_pass_traversal_tag
 >        ]
 >
 >Kind regards
 >
 >
 >B.
 >
 >_______________________________________________
 >Unsubscribe & other changes:
 >http://listarchives.boost.org/mailman/listinfo.cgi/boost