3
3doutpost
can anyone tell me why this won't compile under vc7.1 but compiled
under vc6?
#include <iostream>
template < class implementor >
class streamTest
{
public:
streamTest ( implementor& srcIn ) :
writer ( srcIn )
{
}
streamTest ( const streamTest& orig ) :
writer ( orig.writer )
{
}
streamTest < std:stream >& operator<< ( std:stream& (
__cdecl *ftor ) ( std:stream& ) )
{
( *ftor ) ( writer );
return *this;
}
template < class optor > streamTest& operator<< ( const optor&
optorA )
{
writer << optorA;
return *this;
}
private:
implementor writer;
};
int main ( int argc, char* argv [] )
{
streamTest < std:stream > each ( std::cout );
each << "joy" << "to" << "the" << "world";
return 0;
}
under vc6?
#include <iostream>
template < class implementor >
class streamTest
{
public:
streamTest ( implementor& srcIn ) :
writer ( srcIn )
{
}
streamTest ( const streamTest& orig ) :
writer ( orig.writer )
{
}
streamTest < std:stream >& operator<< ( std:stream& (
__cdecl *ftor ) ( std:stream& ) )
{
( *ftor ) ( writer );
return *this;
}
template < class optor > streamTest& operator<< ( const optor&
optorA )
{
writer << optorA;
return *this;
}
private:
implementor writer;
};
int main ( int argc, char* argv [] )
{
streamTest < std:stream > each ( std::cout );
each << "joy" << "to" << "the" << "world";
return 0;
}