Boost logo

Boost :

From: SourceForge.net (noreply_at_[hidden])
Date: 2005-10-05 01:59:46


Bugs item #1313543, was opened at 2005-10-05 16:29
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1313543&group_id=7586

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Sergey Shandar (sergey_shandar)
Assigned to: Nobody/Anonymous (nobody)
Summary: range, VC 7.1, compile error.

Initial Comment:
Compiler: VC 7.1

Example:
---------
#include <boost/range/iterator.hpp>

template<class Container>
typename boost::range_iterator<const Container>::type
begin(const Container &X)
{
        return 0;
}

int main()
{
        char a[3];
        int b = begin(a);
        return 0;
}
---------

The compile-time error message is
---------
c:\Boost\include\boost-1_33\boost\range\iterator.hpp(37)
: error C2825: 'C::iterator': cannot form a qualified name
        main.cpp(12) : see reference to class template
instantiation 'boost::range_iterator<C>' being compiled
        with
        [
            C=char [3]
        ]
---------

It's a VC 7.1 bug but there is possibility to work
around. Instead of using
C::iterator by default (existing code shown below):

---------
namespace boost
{
namespace detail
{
    template< typename C >
    struct range_iterator
    {
        typedef BOOST_DEDUCED_TYPENAME C::iterator type;
    };
}
}
---------

Use C::iterator only if C is a class. Code showing the
possible implementation
is shown below

---------
namespace boost
{
namespace detail
{
    template< typename C, bool IsClass>
    struct range_iterator
    {
        typedef void type;
    };
                
    template< typename C>
    struct range_iterator<C, true>
    {
        typedef BOOST_DEDUCED_TYPENAME C::iterator type;
    };
}
}
---------

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=107586&aid=1313543&group_id=7586

-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Boost-bugs mailing list
Boost-bugs_at_[hidden]
https://lists.sourceforge.net/lists/listinfo/boost-bugs


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk