Can a macro be assigned an enum in a library?

If the user or another library have a variable/function/macro/whatever, named OPTION1, in most cases there will be an error. For example if the user declare a variable int OPTION1 = 123; after including your library, then that name will be replaced by the content of your macro, it will become int options::O1 = 123; which is not good

But if you use

class Library {
  public :
    enum options {
      OPTION1, OPTION2, OPTION3
    };
  ...
}

...

Library go(1000, 8, Library::OPTION1);

It will compile