Operator overload of << necesita const; produce dolor de cabeza

Estoy intentando sobrecargaroperator <<, pero siempre debe ser unconst función. Sin embargo, quiero cambiar los valores dentro de esta función sobrecargada. ¿Cómo hago esto

EDIT1: El código auxiliar es algo parecido a lo siguiente:

class Check

{   
public:
    void operator << (boost::any)
    {
        // checks weather the given is hresult,string(filename) or int(line no) 
        // and dump them into the exception object, 
        // There by hresult will initiate the object and int will throw the object.
        // so the input order must be like below
    }
private:
    Exception exception;
};

Us

Check   check;
check << file->open << __FILE__ << __LINE__ ;

EDIT2: Esto es para quien haya dicho que la sintaxis no es buena para implementar. No soy un buen experto. programador. Intenté hacer una solución rápida para la excepción. Mi motivo es que no debería consumir más tiempo, debería ser fácil de escribir. Porque mis colegas tienen que usar esta clase de excepción. Traté de encontrar una solución para eso, y la respuesta vino como << sobrecarga del operador. Por ejemplo, considere la siguiente muestra

1) Mi método

#define INFO __LINE__ << __FILE__
c++
RunAndCheck runAndCheck;

try
{
    runAndCheck << checkVersion() << INFO;
    runAndCheck << file->Open() << INFO;
    runAndCheck << file->rename() << INFO;
}
catch(...)
{
}

2) Método tradicional

#define INFO __FILE__,__LINE__
try
{
    runAndCheck.check(checkVersion(),INFO);
    runAndCheck.check(file->Open(),INFO);
    runAndCheck.check(file->rename(),INFO);
}
catch(...)
{
}

Puede estar en este trozo, será más o menos igual, pero considere una situación en la que se utilizó win32API. Allí cada llamada debe ser verificada por excepción. En ese caso, descubrí que << la sobrecarga es fácil de escribir. De modo que hice tal sintaxis

Respuestas a la pregunta(4)

Su respuesta a la pregunta