emacs: sangría diferente para clase y estructura

Estoy tratando de lograr la siguiente sangría en emacs:

class A
{
    // I ALWAYS use access labels in classes

    public: // access-label
        int member; // inclass
};

struct B
{
    // I NEVER use access labels in structs

    int member; // inclass
};

Sin embargo con el siguiente archivo de configuración ...

(defun my-cpp-mode ()
  "My C++ mode"
  (c++-mode)
  (c-set-style "K&R")
  (setq c-basic-offset 4)
  (c-set-offset 'access-label '-)
  (c-set-offset 'inclass '++)
  ;; ...
  (setq mode-name "My C++")
)
(add-to-list 'auto-mode-alist '("\\.[ch]p?p?\\'" . my-cpp-mode))

... solo logro

class A
{
    public: // access-label
        int member; // inclass
};

struct B
{
        // this indentation is too long
        int member; // inclass
};

Por supuesto que es porque:

para la sangría obviamente no hay diferencia entre "clase" y "estructura" (es todo "inclass"),la sangría de "inclass" no depende de la presencia o no de las etiquetas de acceso.

¿Alguna idea de cómo puedo hacer que la sangría de las cosas de la clase dependa de la clase / estructura o de la presencia de etiquetas de acceso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta