C ++: ¿asignar cin a una variable ifstream?

Conoces el idioma común de stdio questdin se especifica con un nombre de archivo de "-", p.

if ((strcmp(fname, "-"))
    fp = fopen(fname);
else
    fp = stdin;

¿Cuál es la mejor manera de hacer esto con unifstream ¿ejemplo? He recibido un poco de código que tiene unifstream como parte de una clase y me gustaría agregar código para hacer el equivalente, algo como:

if ( filename == "-")
    logstream = cin;  // **how do I do this*?*
else
    logstream.open( filename.c_str() );

Respuestas a la pregunta(2)

Su respuesta a la pregunta