Я пытаюсь выполнить следующий отступ в 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
};
Однако со следующим конфигурационным файлом...
(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))
... Я достигаю только:
class A
{
    public: // access-label
        int member; // inclass
};
struct B
{
        // this indentation is too long
        int member; // inclass
};
Конечно, потому что:
- для отступа, очевидно, нет разницы между "классом" и "структурой" (все это "класс" ),
 - отступы данных "inclass" не зависят от наличия меток доступа или нет.
 
Любая идея о том, как я могу сделать отступы в классе inclass, зависящем либо от класса/структуры, либо от наличия меток доступа?