| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 3463.1 |  | SPECXN::DERAMO | Dan D'Eramo | Mon Feb 24 1997 17:33 | 12 | 
|  |         It will probably work if you change
        
        	friend class _iset;
        
        to
        
        	friend class _iset<Key>;
        
        Don't know whether the latest draft of the standard-to-be
        requires the <Key> to be there.
        
        Dan
 | 
| 3463.2 | I think it's a bug... | DECC::J_WARD |  | Tue Feb 25 1997 09:03 | 8 | 
|  | 
Section 14.6.1 of the standard:
"Within the scope of a class template, the name of
the template, when not followed by <, is equivalent
to the name of the template followed by the template-parameters
enclosed in <>.
 | 
| 3463.3 | a related  problem: %CXX-E-INACCESSIBLE | MOIRA::FAIMAN | Wandrer, du M�der, du bist zu Haus | Tue Feb 25 1997 14:30 | 33 | 
|  | /*
In .0, I stated that interchanging the two lines marked (2) allowed the test
program to compile successfully.  It appears from the following that it was only
partially successful.  I have interchanged those two lines, but added code in
the _iset class which invokes the private constructor of the iterator class. 
_iset ought to be a friend of iterator now; but compiling this program yields
            void foo(float k) {iterator i(k);}
        .................................^
%CXX-E-INACCESSIBLE, In this declaration, "_iset<int >::iterator::iterator" is
 not accessible.
As before, removing the lines marked (1) (i.e., making _iset an ordinary class
rather than a template class) eliminates the problem.
*/
template <class Key>            // (1)
class _iset {
public:
    class iterator {
        friend class _iset;     // (2)
        const _iset* set;       // (2)
        iterator(float);
    };
    void foo(float k) {iterator i(k);}
};
void main()
{
    _iset
        <int>                   // (1)
            x;
}
 | 
| 3463.4 |  | MOIRA::FAIMAN | Wandrer, du M�der, du bist zu Haus | Tue Feb 25 1997 14:36 | 6 | 
|  | The problem reports in .0 and .3 were based on DEC C++ V5.4 on VAX/VMS.  I just
confirmed that the problem in .0 occurs with V5.5 on Alpha/VMS and on
Alpha/Unix.  Oddly enough, the problem in .3 occurs with V5.5 on Alpha/Unix, but
*not* with V5.5 on Alpha/VMS.
	-Neil
 |