Я реализую оператор потока вывода<< перегрузка, и мне нужно проверить, что параметр потока вывода os является std :: cout, и если нет, бросить std :: runtime_error — как я могу это проверить?
friend std::ostream& operator<<(std::ostream& os, const Software &soft)
Я подвергаю сомнению вид логики, который заставил бы вас думать, что вы должны сделать это, но если вы действительно хотите …
if (&os != &std::cout) {
throw std::runtime_error(/* ... */);
}
Других решений пока нет …