emacs: indentação diferente para classe e struct

Estou tentando conseguir o seguinte recuo no 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
};

No entanto, com o seguinte arquivo de configuração ...

(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))

... eu só alcanço:

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

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

Claro que é porque:

para o recuo obviamente não há diferença entre "classe" e "struct" (é tudo "inclass"),o recuo de material "inclass" não depende da presença de etiquetas de acesso ou não.

Alguma idéia de como eu posso fazer a indentação de coisas dependentes depender de qualquer classe / struct ou da presença de rótulos de acesso?

questionAnswers(3)

yourAnswerToTheQuestion