#include <iostream>
class Printer
{
public:
Printer() : counter(0) {}
void output() const
{
if (counter != max_warnings)
{
std::cout << "Something special" << std::endl;
++counter;
}
}
private:
static const size_t max_warnings = 5;
mutable size_t counter;
};
int main()
{
const Printer printer;
for (int i = 0; i < 10; ++i)
{
printer.output();
}
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICAKICAgIGNsYXNzIFByaW50ZXIKICAgIHsKICAgIHB1YmxpYzoKICAgIFByaW50ZXIoKSA6IGNvdW50ZXIoMCkge30KICAgIHZvaWQgb3V0cHV0KCkgY29uc3QKICAgIHsKICAgIGlmIChjb3VudGVyICE9IG1heF93YXJuaW5ncykKICAgIHsKICAgIHN0ZDo6Y291dCA8PCAiU29tZXRoaW5nIHNwZWNpYWwiIDw8IHN0ZDo6ZW5kbDsKICAgICsrY291bnRlcjsKICAgIH0KICAgIH0KICAgIHByaXZhdGU6CiAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heF93YXJuaW5ncyA9IDU7CiAgICBtdXRhYmxlIHNpemVfdCBjb3VudGVyOwogICAgfTsKICAgICAKICAgIGludCBtYWluKCkKICAgIHsKICAgIGNvbnN0IFByaW50ZXIgcHJpbnRlcjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkKICAgIHsKICAgIHByaW50ZXIub3V0cHV0KCk7CiAgICB9CiAgICB9