как присвоить istream ссылке?

Сформулировать вопрос лучше не смог. Поясню на примере

class A{
  A(istream &in);
  ...
}

int main(){
 istream in;
 auto file = std::ifstream("test.file");
 if(file) in = file;
 else in = std::cin;
 A a(in);
}

Данный код закономерно не работает так как конструктор копирования в issream нет. Как можно передать параметр в конструктор?


Ответы (1 шт):

Автор решения: Semenov S.A.

Разобрался, спасибо user7860670

int main(){
 auto file = std::ifstream("test.file");
 A a{file ? static_cast<::std::istream &>(file) : static_cast<::std::istream &>(::std::cin)};;
}
→ Ссылка