ostream manipulator class

M

Marc Schellens

Why I get for the following code the following error?

template <typename T>
class Auto {
T flt;
public:
Auto( const T f): flt( f)
{}
friend ostream& operator<<(ostream& os, Auto& a)
{
if( abs(flt) >= 100000) os << scientific; else os << fixed;
return os << flt;
}
};

str.hpp: invalid use of member `Auto<T>::flt'

Thanks,
marc
 
V

Victor Bazarov

Marc Schellens said:
Why I get for the following code the following error?

template <typename T>
class Auto {
T flt;
public:
Auto( const T f): flt( f)
{}
friend ostream& operator<<(ostream& os, Auto& a)
{
if( abs(flt) >= 100000) os << scientific; else os << fixed;

This is a _friend_ (i.e., non-member) function. What's 'flt'
here? Don't you mean to use 'a.flt'?
return os << flt;
}
};

str.hpp: invalid use of member `Auto<T>::flt'

HTH

Victor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top