исключение — Как проверить, является ли выходной поток std :: cout в C ++?

Я реализую оператор потока вывода<< перегрузка, и мне нужно проверить, что параметр потока вывода os является std :: cout, и если нет, бросить std :: runtime_error — как я могу это проверить?

   friend std::ostream& operator<<(std::ostream& os, const Software &soft)

2

Решение

Я подвергаю сомнению вид логики, который заставил бы вас думать, что вы должны сделать это, но если вы действительно хотите …

if (&os != &std::cout) {
throw std::runtime_error(/* ... */);
}
8

Другие решения

Других решений пока нет …