Я хотел бы иметь функцию, которая действует как cout, но с некоторыми опциями.Настройка cout из класса с опциями
Например: MyFunc(0) << "Cats like to drink milk " << 2 << endl;
, когда его 0, не должно быть какой-либо вывод
Когда его так:
MyFunc(1) << "Cats like to drink milk " << 2 << endl;
Я должен увидеть выход "Кошки любят пить milk2". Я читал из нескольких форумов, что ostream нужно использовать, но я не уверен, как я могу использовать его для своей цели. MyFunc - это класс в основном, с 1, 0 параметрами конструктора.
Я видел такие вещи, но я не понимаю, как это работает.
Log& operator<< (std::ostream &(*f)(std::ostream &)){
cout << *f;
return *this;
}
Любая помощь оценивается.
Вы решили какие-либо из более простых частей этой проблемы? Как писать класс, который действует как 'cout', не будучи конкретным в отношении числа? – Beta
Ну, вы вообще должны уклоняться от наследования объектов в стандартном пространстве имен, но я мог предвидеть, что вы завершаете 'std :: cout' и реализуете оператор' << 'для всех [одинаковых типов] (http: // en .cppreference.com/ж/CPP/И.О./basic_ostream/operator_ltlt). Что-то вроде [этого] (http://coliru.stacked-crooked.com/a/4970cbea5b144ec7) – AndyG
@ AndyG, оценено. То, что я точно искал! – user42826