For a connection 'c', if c.connected() == true prior to calling

    c.disconnect();

after which c.connected() == false, how can connection::disconnect() be considered a "const" member function since it clearly changes the observable state of a connection?