Deberían las funciones miembro ser "constantes" si afectan el estado lógico, pero no el estado bit a bit?

Estoy escribiendo una clase que envuelve una API C heredada que controla un dispositivo de hardware. En un ejemplo simplificado, podría tener algo como:

class device
{
public:
    void set_request(int data) { legacy_set_req(p_device, data); }
    int get_response() const   { return legacy_get_rsp(p_device); }
private:
    device_handle_t *const p_device;
};

La clase en sí no tiene un estado bit a bit; por lo tanto, podría elegir declararset_request() comoconst, y el compilador estaría contento con eso. Sin embargo, desde un punto de vista semántico, ¿sería este el enfoque correcto, dado que afecta a laobservabl comportamiento del objeto? (es decir, el dispositivo de hardware encapsulado muchohac tiene estado.)

Respuestas a la pregunta(4)

Su respuesta a la pregunta