When I turn on various GCC strictness options I get compilation warnings from the header AtomicCounter.h. It is abou the increment and decrement operators. The compiler is expecting a reference to the object to be returned. Instead a ValueType is returned. Can someone explain this please? Why is Poco returning the underlying type instead of the object type?