Здравствуйте, cs_student, Вы писали:
C>>1) какой компилятор?
C>>2) используем ли ты fastream из <fstream> или устаревший из <fstream.h> ?
C>>3) на аргументе какого типа выдается это сообщение об ошибке ?
_>1) Visual C++ 2005 express edition
_>2) <fstream>
_>3) endl
Для манипуляторов потребуется написать отдельную специализацию:
class Log : public ofstream
{
public:
Log(char* szLogFn);
~Log();
template<class C>
Log& operator<<(const C& c)
{
static_cast<ofstream&>(*this) << c;
return *this;
}
Log& operator<<(ostream& (*manipulator)(ostream&))
{
static_cast<ostream&>(*this)<<manipulator;
return *this;
};
private:
};
Проверил со стандартными манипуляторами работает.
Возможно, потребуется написать еще специализации для ios_base& (*m)(ios_base&) и для basic_ios<>& (*m)(basic_ios<>&)